我正在使用解释来测试这些查询。 col 类型是 DATE
这使用索引:
explain SELECT events.* FROM events WHERE events.date = '2010-06-11'
这不
explain SELECT events.* FROM events WHERE events.date >= '2010-06-11'
索引如下(phpmyadmin)
Action Keyname Type Unique Packed Field Cardinality Collation Null Comment
Edit Drop PRIMARY BTREE Yes No event_id 18 A
Edit Drop date BTREE No No date 0 A
我注意到基数为 0,尽管有一些行具有相同的日期..
如果 MySQL 不使用索引,它会看到您的查询,并估计表扫描可能会比使用索引更快(就可能所需的 IO/磁盘操作而言)。您可以使用FORCE INDEX
并检查使用索引该查询是否实际上会更快。
SELECT events.* FROM events
FORCE INDEX (date)
WHERE events.date >= '2010-06-11';
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)