我有一张桌子:
ID | Name | Status
拥有数百万个条目。如果我选择:
SELECT * from table where ID = 949442
此查询是否会比此查询更快:
SELECT * from table where ID = 949442 AND status = "OPEN"
假设该行可能具有 OPEN 或 CLOSED 状态?
我有一张桌子:
ID | Name | Status
拥有数百万个条目。如果我选择:
SELECT * from table where ID = 949442
此查询是否会比此查询更快:
SELECT * from table where ID = 949442 AND status = "OPEN"
假设该行可能具有 OPEN 或 CLOSED 状态?
通常,仅添加更多WHERE
条件不会使您的查询更快。例如,有时添加OR
条件会使事情变慢。通常使用添加更多条件AND
将使查询更快,即使只是因为结果集更小,因此必须通过线路传输的数据更少。
使查询更快的是当您编写WHERE
与索引匹配的条件时:
8.3。优化和索引
如果ID
是一个独特的列(看起来是这样),那么额外的约束不太可能以任何可衡量的方式(正面或负面)影响性能。数据库引擎已经可以在 O(log n) 时间内找到该特定行,并且检查您已经找到的行中的列的值是一个 O(1) 操作。