最近做的一个项目,发现了sql慢查询的情况,还好及时发现而且访问量并没有那么大,不然会造成很严重的事故,所以想记录一下,作为自己的成长记录,要不这脑子也不太好使记不住。
Mysql版本 5.6.25
表结构不展示啦 直接看索引 (公司的表不方便泄露 假如是table_name吧)
SHOW INDEX FROM table_name (列出索引信息)
问题sql (我是想通过questionId 进行排序 做分页处理 3475834代表上一页最大的questionId的值 )
EXPLAIN
SELECT QuestionID FROM table_name
WHERE (CourseSectionID in(569743,508457) )
AND (QuestionID > 3475834)
ORDER BY QuestionID
LIMIT 50
发现rows 的值有 60多万 就是mysql扫表行数有这么多 好恐怖(为什么恐怖自己查去 本节不介绍恐怖原因) 使用的索引是QuestionID和CourseSectionID 的联合索引
优化sql
1.EXPLAIN
SELECT QuestionID FROM table_name
WHERE