MySQL:更多“where”条件会增加速度吗?

时间:2013-04-11 15:08:52

标签: mysql

我有一张桌子:

ID | Name  | Status

拥有数百万条记录。如果我选择:

SELECT * from table where ID = 949442

这个查询会比这个查询更快:

SELECT * from table where ID = 949442 AND status = "OPEN"

假设此行可能处于OPEN或CLOSED状态?

2 个答案:

答案 0 :(得分:4)

只添加更多WHERE条件通常不会使您的查询更快。例如,有时添加OR条件会使事情变得缓慢。通常使用AND添加更多条件将使查询更快,即使只是因为结果集较小,因此必须通过网络传输较少的数据。

使查询更快的原因是当您编写与索引匹配的WHERE条件时:
8.3. Optimization and Indexes

答案 1 :(得分:1)

如果ID是一个唯一的列(如图所示)那么额外的约束不太可能以任何可衡量的方式影响性能,无论是正面的还是负面的。数据库引擎已经可以在O(log n)时间内找到该特定行,并且检查已经存在的行中的列的值是O(1)操作。