MySQL高级开发(三)–SQL性能下降原因分析
标签(空格分隔): MySQL
在日常的运维过程中,经常会遇到DBA将一些执行效率较低的SQL发过来找开发人员分析,当我们拿到这个SQL语句之后,在对这些SQL进行分析之前,需要明确可能导致SQL执行性能下降的原因进行分析,执行性能下降可以体现在以下两个方面:
1、等待时间长
锁表导致查询一直处于等待状态,后续我们从MySQL锁的机制去分析SQL执行的原理
2、执行时间长
分别有以下几个原因:
- 运行环境的原因(可忽略)
例如:磁盘空间满了- 查询语句写的烂
例如:各种join、各种子查询、没建索引- 索引失效(分单值、复合)
建了索引,但执行SQL的时候没用上- 关联查询太多join(设计缺陷或不得已的需求)
- 服务器调优及各个参数设置(缓存、线程数等)
通过上述五种原因去分析SQL为什么执行性能下降,执行效率低。各个击破