关于Left Join On的使用

在进行公司项目超猿的CRMPC端后台会员列表页面开发时,初始为了省事方便,直接使用全表查询,由于该功能项设计了三个表的数据,全表查询导致了查询速度过于长久,被测试人员驳回优化

关于Left Join On的使用_第1张图片
当我在数据库进行查询的时候,发现查询时间也是达到了令人惊悚的5.5s

在这里插入图片描述
首先想到的就是通过explain来查看慢sql,针对性优化
关于Left Join On的使用_第2张图片
由上可见,多个全表查询导致效率变得迟缓,经过网上查找,请教同事,决定用Left Join的语句来对表进行拼接,而不是全表查询。
Left Join俗称左连接,也就是吧left join左边的表的记录全部找出来。系统会先用表A和表B做个笛卡儿积,然后以表A为基表,去掉笛卡儿积中表A部分为NULL的记录。最后形成需要的结果。
通过向同事请教,最终写出的优化sql如下:
关于Left Join On的使用_第3张图片
查询速度也是有了极大的提升:

在这里插入图片描述
由开始的5.5s到优化后的0.13s,速度提升了很多。说明left join优化还是有效果的。
下面则简单介绍一下left join:
Left join on就是左连接,以左表为主,其余表为辅,通过两者之间的关联字段进行拼接形成一张临时表,右表符合on的条件的数据则展示,不符合条件的数据则为空显示。
Where条件则是在已经生成的临时表的基础上,再对临时表全表加上条件限制。

以上就是这次踩坑的总结了,每次记录一点点,让自己再靠近知识一点点。

你可能感兴趣的:(程序人生,MySQL数据库)