在写数据报表,可能是一个非常大的sql,要考虑到查询用时,一般不超过5秒
当超过一定时长,想要提高sql的执行效率,可以分块(段)执行sql,逐一将不影响执行效率的sql去掉,从而查出是那一块影响了执行效率,
近而优化sql,若不能优化再考虑添加索引提高执行效率。
如下面,去掉不影响无关的sql后,速度还是很慢
SELECT
stu. NAME,
gr.math_scores
FROM
`student` stu
LEFT JOIN grade gr ON stu.id = gr.student_id
WHERE
stu. STATUS = 1
近而把LEFT JOIN grade gr ON stu.id = gr.student_id取掉,剩下的sql执行效率明显提高,
查看后知道grade表中student_id未加索引,从而严重降低了执行效率。