一段SQL优化场景

看到这篇博客,虽然都是描述性语言(没有例子),但是我觉得写得很好,软件应用的灵魂在于后台,后台的灵魂在于数据库,数据库的灵魂在于性能,以下为原文:

由于手头没有现场SQL代码,只能回忆回忆,顺便总结总结。

那段SQL的问题是执行时间很慢,left join了5张表当然慢了,其中四张表都是数据量很大的表,而且有一个在一个in()中写了一段很长的select。首先就把这个in()操作去掉了,修改了一下分页规则,这么一改立马就快了不少。但是页面响应超时是30秒还是超过啊,还要继续优化。5个left join通过一个一个的注释。。。。。嗯然后找到了最耗时间的那个join,把它注释掉就是秒查,加上它就变慢了,这样优化范围缩小了一大圈。观察发现这个left join有点特殊,on后面跟了两个条件,网上一百度果然on后面多条件会影响速度,可是也不能干掉啊,就建索引,建完索引快了一两秒吧。。。。。。然后经同事提醒其中一个条件a.seqid = b.person_seqid这两个字段类型不同,一个是int型一个是long型,这样关联需要有一个类型转换的过程,数据量又大所以会慢。最后选了一个符合条件的同类型的字段关联,果然问题解决了,秒查

没有SQL就这么说确实比较抽象。

后来发现对on后面的多条件建立组合索引,会大大提高查询速度。
--------------------- 
原文:https://blog.csdn.net/weixin_42447959/article/details/82861041 
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值