sql执行慢的原因有哪些,如何进行sql优化?
首先,我们分析下导致SQL执行慢的原因
1、硬件问题。如网络速度慢,内存不足,1/吞吐量小,磁盘空间满了等。
2、没有索引或者索引失效。(一般在互联网公司,DBA会在半夜把表锁了,重新建立一遍索引,因为当你删除某个数据的时候,索引的树结构就不完整了。所以互联网公司的数据做的是假删除,一是为了做数据分析,二是为了不破坏索引
3、数据过多(分库分表)
4、服务器调优及各个参数设置(调整my.cnf)
其次,我们在分析原因的时候,一定要找切入点
1、先观察,开启慢查询日志,设置相应的阈值(比如超过3秒就是慢SQL),在生产环境跑上个一天过后,看看哪些SQL比较慢。
2、Explain和慢SQL分析。比如SQL语句写的烂,索引没有或失效,关联查询太多(有时候是设计缺陷或者不得以的需求)等等。
3.ShowProfile是比Explain更近一步的执行细节,可以查询到执行每一个SQL都干了什么事,这些事分别花了多少秒
4、找DBA或者运维对MySQL进行服务器的参数调优。