数据库
首页 > 数据库> > 一条慢SQL引发的改造

一条慢SQL引发的改造

作者:互联网

一条慢SQL引发的改造 https://mp.weixin.qq.com/s/8rcVTufvB6ETCoAxtw1qRA

1)

索引

对于慢SQL,最先想到的就是查询没有走索引或索引失效导致的全表扫描。首先用explain对此SQL 进行分析。对于此表,已经建立了index(userid,status,type,modifiedtime)组合索引。

图片

MySQL的索引采用的是B+树,需要符合最左前缀匹配,分析SQL可以看出,由于存在多条in条件,虽然userid和status走了索引,但是status的范围查找导致之后的索引失效。通过Using index condition也可以看出走了索引条件下推,只使用了部分索引,而Using filesort可以看出使用了文件排序,而没有使用索引排序,查询速度自然很慢。想从索引的角度是无法解决这条慢SQL的。

标签:status,index,改造,userid,引发,索引,SQL,Using
来源: https://www.cnblogs.com/rsapaper/p/15962931.html