如何避免在mysql上进行全表扫描?
答案 0 :(得分:12)
通常,通过确保您在WHERE
,JOIN
和ORDER BY
子句中显示的字段具有可用索引。
答案 1 :(得分:5)
索引您的数据。
编写使用这些索引的查询。
除此之外我们还需要具体细节。
答案 2 :(得分:1)
另请注意,有时您无法摆脱全表扫描,即当您需要表中的所有行...或者扫描索引的成本是扫描整个表时的成本。< / p>
答案 3 :(得分:0)
当您知道要返回多少行时使用LIMIT子句,例如,如果您要查找具有唯一的已知ID字段的记录,请将您的选择限制为1,这样mysql将停止搜索它找到了第一条记录。更新和删除也是如此。
SELECT * FROM `yourTable` WHERE `idField` = 123 LIMIT 1