一:问题
时间范围查询所有数据的同数据存在超过4次的数据,检索查询时已经没有速度了,直接不响应。
优化方向:
①给md5_code、nuclear_time字段加索引。
②给sql语句后面加order by null。
③调整where条件里字段的查询顺序,有索引的放前面。
④给所有where条件的字段加组合索引。
⑤用子查询的方式,先查where条件里的内容,再去重。
SQL分析后的结果是:
可能用到索引:nuclear_time,md5_code
实际用到索引:md5_code
第一步:优化逻辑where查询没有使用到我的索引:强制必须使用nuclear_time索引FORCE INDEX(nuclear_time)
EXPLAIN
SELECT md5_code
FROM nuclear_price FORCE INDEX(nuclear_time)
WHERE nuclear_time BETWEEN '2020-03-18' AND '2020-06-17'
GROUP BY md5_code
HAVING COUNT(md5_code) >= 4
ORDER BY NULL