我一直在尝试在查询中使用索引,但无济于事。它已定义,但未使用。
这是我的索引
Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment
--------------------------------------------------------------------------------------------------------------------------------------------------------
alerts | 1 | date_index | 1 | date | A | 9825 | NULL | NULL | | BTREE
这是我的查询+解释:
EXPLAIN SELECT latitude, longitude, msg_id
FROM alerts
FORCE INDEX(date_index)
WHERE date>1336312075;
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
--------------------------------------------------------------------------------------------------------
| 1 | SIMPLE | alerts | ALL | date_index | NULL | NULL | NULL | 9825 | Using where |
该表有 9825 行,而我选择的日期是最新的 9 行之一。所以它应该只扫描了 9 行。
有任何想法吗?谢谢