记一次mysql优化操作

最近发现项目的一些操作速度特别慢,原本以为是数据量太大造成,后来仔细分析下来有了重大发现。
一个很普通的操作,就几个查询几个简单的修改操作,操作时间尽达到了30多秒,这个速度是没法接受的,我们看下分析思路:

1. 查看当前的慢查询:

image.png

结论

发现这个简单的update修改操作尽然在等待了,而且更怪异的是使用了id这种一般建表时的自增唯一主键

2. 使用explain大神进行分析

image.png

结论

可以看出id没有走索引,而是进行了全表查询

发现了问题,怎么解决呢?

去看表结构,发现表里的 Primary keyUnique 都没有打对勾(下面的截图是我修改后的)

image.png

看下修改后的explain结果

image.png

可以看出 where 已经使用id 索引了,这样的效率一下就上来了

随后又对经常用到的查询建立了索引

总之对mysql优化的一个目标就是尽量想办法减少查询扫描表的行数(即explain结果里的row字段的值)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容