2020-07-02 09:54:48 2205次浏览 1条回答 0 悬赏 10 金钱

今天发现之前在使用日期索引时,通过explain发现一直不走日期索引,在网上查询了下,发现使用过程中要注意以下情况:

1、在查询数据条数约占总条数五分之一以下时能够使用到索引,但超过五分之一时,则使用全表扫描了。

2、查询条件有日期索引和其他条件的话,只有所有条件都有索引的情况下,才会走日期索引,
例如:
我建立了复合索引 car_date_index: date_time,car_plate_no.
当我是用查询条件: WHERE car_plate_no=‘冀E8888’ and date_time<=‘2019-05-01 00:00:00’,如果想走car_date_index的索引,表中必须有car_plate_no字段的索引才能走,暂时没发现为啥会出现此问题,有知道可以分享下哦

  • 回答于 2020-07-09 17:57 举报

    (1)范围查询会引起复合索引失效
    (2) sql中的字段类型与索引不符也会引起索引失效

您需要登录后才可以回答。登录 | 立即注册
PHP学院的中学生
副总裁

PHP学院的中学生

注册时间:2018-10-23
最后登录:2024-04-07
在线时长:168小时1分
  • 粉丝29
  • 金钱4730
  • 威望30
  • 积分6710

热门问题