美文网首页
2018-09-07 记一次慢查询

2018-09-07 记一次慢查询

作者: winter_li | 来源:发表于2018-09-07 19:36 被阅读0次

今天帮同事看了一个满查询问题,事情经过是这样的

之前很早的一个项目,查询逻辑写到了存储过程里面,大概有5个表,主表a,join b,c,d,子查询e,大概如下:

以下内容都在存储过程里面

select a.* ,b.id,c.id

from a

join b on a.id = b.aid

join c on b.id = c.bid

join d on c.id = d.did

join (select sum(stock),e.aid  from  group by e.aid)e  on a.id = e.aid 

一开始几次的查询,都挺快,但是差不多到了第四次,就慢了,然后觉得很奇怪,一开始觉得是数据的问题,把第一次存储(快)跟慢的存储(慢),最终的sql语句,拷贝出来,发现就差在一个id范围的问题,重新运行了两遍sql语句,发现sql又都很慢,然后就纳闷了,为啥存储里面很快,拷贝出来同样的语句,却很慢。

考虑了一下,还是觉得应该看一下语句本身的问题,用最基础的语句,explain 。。。。。,发现其中a,d都没有用索引,都是全表扫描的,a标识3w+数据,d是7w+的数据,这就有意思了,会不会是子查询不用索引呢???心里打了问号

然后换成了left join e表,又explain 了一下,发现e表就用索引了,速度就快了。。。

相关文章

网友评论

      本文标题:2018-09-07 记一次慢查询

      本文链接:https://www.haomeiwen.com/subject/bcchgftx.html