在MySQL中避免全表扫描

时间:2010-11-04 16:50:10

标签: sql mysql

如何避免在mysql上进行全表扫描?

4 个答案:

答案 0 :(得分:12)

通常,通过确保您在WHEREJOINORDER BY子句中显示的字段具有可用索引。

答案 1 :(得分:5)

索引您的数据。

编写使用这些索引的查询。

除此之外我们还需要具体细节。

答案 2 :(得分:1)

另请注意,有时您无法摆脱全表扫描,即当您需要表中的所有行...或者扫描索引的成本是扫描整个表时的成本。< / p>

答案 3 :(得分:0)

当您知道要返回多少行时使用LIMIT子句,例如,如果您要查找具有唯一的已知ID字段的记录,请将您的选择限制为1,这样mysql将停止搜索它找到了第一条记录。更新和删除也是如此。

SELECT * FROM `yourTable` WHERE `idField` = 123 LIMIT 1