为什么在检查多个ID时WHERE IN运行得更快?

时间:2015-01-13 19:24:10

标签: mysql

我有一个简单的SELECT查询:

SELECT * FROM MyTable
WHERE ParentId IN (0, 1) OR ParentId IS NULL
ORDER BY SortColumn
LIMIT 0, 2048;

为什么在撰写WHERE ParentId IN (1)而不是(0, 1)时,此查询的运行速度 10x 会变慢?

无论是否找到第二个id,查询运行得更快。

修改

看起来像运行查询检查1个元素而没有OR ParentId IS NULL运行速度与运行查询检查多个元素一样快。

ParentId是另一列的外键,因此编入索引。

为什么这么重要?

0 个答案:

没有答案