Java教程

一条慢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的。

这篇关于一条慢SQL引发的改造的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!