我正在使用解释来测试这些查询.col类型是DATE
这使用索引:
explain SELECT events.* FROM events WHERE events.date = '2010-06-11'
Run Code Online (Sandbox Code Playgroud)
这不是
explain SELECT events.* FROM events WHERE events.date >= '2010-06-11'
Run Code Online (Sandbox Code Playgroud)
索引如下(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
Run Code Online (Sandbox Code Playgroud)
我注意到基数是0,虽然有一些行具有相同的日期..
如果MySQL没有使用索引,它已经看到了你的查询,并估计表扫描可能比使用索引更快(就可能需要的IO /磁盘操作而言).您可以使用a FORCE INDEX 并使用索引检查此查询是否实际上更快.
SELECT events.* FROM events
FORCE INDEX (date)
WHERE events.date >= '2010-06-11';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5745 次 |
| 最近记录: |