mysql索引为何没有用到

a30501139 2013-06-03 12:06:49
mysql> explain select * from T_Alarm_Information where recover_Date>'2013-06-03 09:57:00' and creat_Date<'2013-06-03 11:57:00';
+----+-------------+---------------------+------+------------------------+------+---------+------+----------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+---------------------+------+------------------------+------+---------+------+----------+-------------+
| 1 | SIMPLE | T_Alarm_Information | ALL | i_t_alarm_info_rectime | NULL | NULL | NULL | 15647542 | Using where |
+----+-------------+---------------------+------+------------------------+------+---------+------+----------+-------------+
1 row in set (0.00 sec)


但是我的索引是存在的啊
| t_alarm_information |          1 | i_t_alarm_info_rectime                       |            1 | CREAT_DATE       | A         |      205888 |     NULL | NULL   |      | BTREE      |         |
| t_alarm_information | 1 | i_t_alarm_info_rectime | 2 | RECOVER_DATE | A | 340163 | NULL | NULL | YES | BTREE



为什么这里会用不到索引呢。表里有1500W数据,查询得到的结果是91条
...全文
110 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2013-06-03
  • 打赏
  • 举报
回复
应该是MYSQL通过索引判断,表中几乎所有记录都符合 creat_Date<'2013-06-03 11:57:00' 条件,这种情况下,使用索引效率反而更差。 先创建一个 RECOVER_DATE的索引试一下。
a30501139 2013-06-03
  • 打赏
  • 举报
回复
引用 1 楼 ACMAIN_CHM 的回复:
应该是MYSQL通过索引判断,表中几乎所有记录都符合 creat_Date<'2013-06-03 11:57:00' 条件,这种情况下,使用索引效率反而更差。 先创建一个 RECOVER_DATE的索引试一下。
谢谢了,试了下果然OK了。谢谢ACMAIN_CHM版主

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧