【Mysql】记录sql在执行过程中很慢
在改之前的测试脚本,之前写了一些sql,这次准备顺手把sql也调整一下,因为虽然sql能用,但是写的十分拉跨
附sql
分析过程:
1. 初步推测慢主要是因为left join了好几张表。
然后我去查了也跟开发求证过sql在执行过程中是"先联表,再执行查询条件"。我联的这几张表基本都有1w+条记录,left join在查询过程中,如果右表没有值也会返回,考虑到这几张表均有对应数据,所以把“left join”换为"inner join"
效果显著,换完之后查询时间由72s提高到22s
get的知识点:
1)在sql执行过程中,是"先联表,后面再执行查询条件",这个执行步骤。
2)left join以左表作为主表,去查询右表,查询出来如果右表中没有值,那么就填充null
3)inner join则是取两表之间的最小表,将多余的数据直接去掉