qq_43248056
qq_43248056
2020-01-16 15:22
采纳率: 100%
浏览 1.4k

mysql不走时间字段的索引

where条件中有三个字段的条件,每个字段都有mysql普通索引,但是expalin结果显示时间字段索引没有生效,调换条件顺序依旧无效,麻烦大神们解答一下。
图片说明

EXPLAIN SELECT * FROM sys_data_5min_zl
WHERE data_user = '2ec29aff-75f3-4a1a-972f-f27fd6099515'
 AND sb_date BETWEEN '2020-01-03' AND '2020-01-04'
 AND data_sb ='4eefa3ca-215b-43f6-aaa2-ae16abe764e2'

图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • guangcaiwudong
    Kevin.Y.K 2020-01-16 15:43
    已采纳

    把data_user、data_sb、sb_date组成联合索引试试

    点赞 评论
  • weixin_42870117
    米斯特谭i 2020-01-16 15:31

    BETWEEN and 使不使用索引跟取出数据的条数有关系

    点赞 评论
  • qq_23292875
    Hefei19881002 2020-01-16 16:06
    你这个索引有问题  建议创建组合索引(遵守最左前缀原则) 并调整sql为
    SELECT * FROM sys_data_5min_zl WHERE data_user = '' AND data_sb ='' AND sb_date BETWEEN '' AND ''
    组合索引顺序为 data_user data_sb sb_date
    如果对你有帮助请采纳,3q
    
    点赞 评论

相关推荐