关于Left Join On的使用

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

在这里插入图片描述
当我在数据库进行查询的时候,发现查询时间也是达到了令人惊悚的5.5s

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

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

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

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值