MySQL整数比较速度(= vs <>)

MySQL Integer comparison speed (= vs <>)

我有一个带有字段 "active" 的 table。 Active 是一个带索引的 tinyint(4),但只包含 1 或 0 的值。我知道……不是很好的设计,但我继承了这个系统来维护。

如果有帮助,这个 table 有 175277 条记录。

当我运行:

SELECT * FROM table WHERE active = 1;

需要 0.497 秒。

但是当我 运行

SELECT * FROM table WHERE active <> 0; 

(active 必须等于 1,因为这是唯一可能的其他值。)

只需要0.095秒。

我正在做一些查询优化并注意到了这一点并且想知道为什么?

已解决!

如上所述,我使用 EXPLAIN 来查看查询在做什么,结果引擎决定为每个查询使用不同的键。