mysql left join 查询慢的问题排查
创始人
2024-03-30 05:20:44
0

一。背景

        在做一个统计功能时,需要关联基础信息和多个指标,要以基础表作为基表,关联各个指标,指标可以为空,所以需要使用 left join。

        整体sql写完之后,发现执行需要5s左右,然后单独对 子查询进行查询,执行都很快。需要进行优化。

        因为项目原因,sql不能给出,如果有需要的话,可以给我留言,我修改过后可以发出来。

二。优化过程

1.查看执行计划

        发现有的表是ALL,全表扫描,行数是3W多。

2.查看各个表数据量

        发现数据量最大的不到5W条数据,按理来讲,查询不应该出现性能问题。

3.将sql拆分开,因为是 left join ,结果比较简单,将关联关系拆分开,然后挨个执行,看看执行情况。

        发现 vehicle 的 union 表 和 quality_xxx 使用 left join关联时执行很慢(5s左右),但是两个字查询分别查询时,执行很快(小于1s),两个表的数据量都不是很大,一个7k , 一个不到5W。

        这就比较奇怪。

        然后对这个查询查看执行计划,看到 quality_xxx 是全表扫描,虽然比较怀疑,这么小的数据量不会导致这么大的差异,但是还是给 quality_xxx 的 关联字段 vehicle_no 加上了索引。查看了一下执行情况,发现执行完成只需要1s多。这个索引确实影响很大。

三。总结

        1.在查看执行计划时,如果出现ALL,就应该引起重视,不管数据表中的数据量是大还是小。即使数据量不大,索引的影响可能也会很大。

        2.join 和 left join 的执行速度差距很大。使用哪一个,要按照实际业务场景进行选择。

相关内容

热门资讯

穷人没本钱怎么创业,什么叫创业... 有哪些适合个人创业者投资小、成本低的创业项目?全民创新全民创业。时代的支持,社会的支持,市场环境的沃...
深户创业补贴怎么申请条件,深圳... 2021深圳创业场地补贴要求?深圳公司创业社保补贴政策深圳各区加盟连锁样板房装修办公室出租,上市企业...
大学生创业调查问卷(大学生创业... 点击上面的“微信官方账号”即可订阅!2015年,我校管理学院顾、张娟碧与商学院吴军、易希红共同申请项...
延安精神的启示,什么的创业精神... “山随水来。咱们由中央红军去陕北……”4月7日,在陕西省延安市宝塔区王家屏八路军总部所在地桃林公园的...
股票什么时候出手最好,创业板的... 今天两市双双高开低走,回调如期而至。市场仍然没有持续的热点,上证指数的交易量仍然很低。虽然创业板仍在...
穷人没本钱怎么创业,什么叫创业... 有哪些适合个人创业者投资小、成本低的创业项目?全民创新全民创业。时代的支持,社会的支持,市场环境的沃...
创业一次成功的几率(创业成功了... 如果你看过足够多的创业案例,你会发现创业是有其成功概率分布的例如:普通人开餐馆成功率11%厨师开店成...
玖月晞八千里路讲了什么? 玖月晞八千里路讲了什么?八千里路讲了:跨越八年,跋涉八千里,一个男孩对女孩最深沉的暗恋。
冯小刚为什么被称作最成功的商业... 冯小刚为什么被称作最成功的商业导演?因为他的很多作品很多都是票房好,不然就是口碑还不错的。因为他的很...
汽车产业“国家队”落子合肥 (转自:合肥市投资基金协会)7月3日,记者从蜀山区获悉,近日由中国汽车技术研究中心(以下简称“中汽中...