怎么排查影响sql执行效率的位置

在写数据报表,可能是一个非常大的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未加索引,从而严重降低了执行效率。

你可能感兴趣的:(sql)