记一次mysql优化操作

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

1. 查看当前的慢查询:

image.png

结论

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

2. 使用explain大神进行分析

image.png

结论

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

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

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

image.png

看下修改后的explain结果

image.png

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

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

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

你可能感兴趣的:(记一次mysql优化操作)