记一次线上MySQL慢查询的优化

哎,这次苦逼的经历,真泥坑爹,看了一下午SQL,眼睛都快看瞎了,现在终于解决了,总结一下吧.

中午的时候运维报了一个慢SQL出来.看了一下执行计划,没发现问题,SQL如下

执行计划如下图


这执行计划能跑44秒?我擦,怎么可能呢! 但是事实就是如此

下面就开始了苦逼的profiling

EXPLAIN看不出问题,那就profile看一下

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

发现这个Sending Data很慢(因为这个名字真的很误导人),曾经一度以为是数据库服务器有问题.结果运维的截图,打消了我的念头

这服务器现在的状态,爽的可以跑马.找了一个sending data,原来这个不只是把数据发送给客户端那么简单,这个是从查询开始,一直到返回给客户端数据的时间.不只是发送数据的时间. 这名字起的,真想打死作者有木有.

 

哎,又回到了原点,这泥玛蛋到底啥问题.EXPLAIN看不出问题,PROFILE也看不出问题, SQL没问题,服务器没问题,难道是我人品有问题吗?

就这样跑这SQL跑了半下午,各种试,各种百度,都没解决问题.然后就看WHERE条件一个个的找,有没有索引(其实这一步有点多余,没索引的话EXPLAIN的时候,就看出来了),结果发现都有索引. 然后又尝试了一下,把WHERE条件里的store_code这个条件字段,换成id, 我草,好快,1秒不到就完成了(哈哈哈哈,1秒已经很慢了,但是相比43秒,还是快了太多),然后就觉得,太奇怪了吧.store_code是有索引的啊,不可能这么慢.然后看了一下索引类型

 

 

 

 

 

 

 

 

我草, Full Text. 我还能说啥,然后改成唯一索引,马上效果就出来了,1秒不到就完成了.

 

  1 comment for “记一次线上MySQL慢查询的优化

  1. 2019 年 4 月 17 日 at 04:59
    Your comment is awaiting moderation.

    Helpful write ups. Kudos.
    http://canadianpharmaciesnnm.com/
    compare rx prices canadian online pharmacy online pharmacy without prescription canadian pharmacy
    mexican online pharmacies
    online pharmacy canada
    king pharmacy
    best canadian pharmacies
    drugs for sale
    pharmacies in canada

  2. 2019 年 4 月 17 日 at 03:15
  3. 2019 年 4 月 17 日 at 02:30
  4. 2019 年 4 月 16 日 at 22:05
    Your comment is awaiting moderation.

    Fantastic facts. Thanks a lot!
    http://www.canadianpharmacymsn.com/
    canadian prescription drugs
    top rated canadian pharmacies online
    pain meds online without doctor prescription
    canada pharmaceuticals online

  5. god
    2018 年 9 月 4 日 at 13:58

    good

发表评论

电子邮件地址不会被公开。 必填项已用*标注