1

我有一张桌子:

ID | Name  | Status

拥有数百万个条目。如果我选择:

SELECT * from table where ID = 949442

此查询是否会比此查询更快:

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

假设该行可能具有 OPEN 或 CLOSED 状态?

4

2 回答 2

4

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

使查询更快的是当您编写WHERE与索引匹配的条件时:
8.3。优化和索引

于 2013-04-11T15:12:16.480 回答
1

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

于 2013-04-11T15:12:46.683 回答