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'
把data_user、data_sb、sb_date组成联合索引试试
BETWEEN and 使不使用索引跟取出数据的条数有关系
你这个索引有问题 建议创建组合索引(遵守最左前缀原则) 并调整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