1. 查询效率低的sql语句
通过慢日志查询,通过processlist查看执行时间长的sql语句
2. explain分析执行计划
查询到效率低的sql语句后,可通过explain命令获取mysql如何执行select语句的信息,包括在select语句执行过程中表如何连接和连接的是顺序。







3.show profile分析sql
mysql从5.0.37版本开始增加了对show profiles和show profile语句的支持。show profiles能够在做sql优化时帮助我们了解时间耗费到哪里去了。
//通过hava_profiling参数,能够看到当前sql是否支持profile
select @@hava_profiling;
set profiling=1; 开启profiling开关


4. trace分析优化器执行计划
mysql5.6提供了对sql的跟踪trace,通过trace文件能进一步了解为什么优化器选择a计划,而不是b计划。



5索引优化
索引优化时最常用也是重要的手段之一,通过索引通常可以解决用户大多数mysql性能优化问题。
- 避免索引失效应用,全职匹配,索引字段顺序无关,mysql内部优化器会优化字段顺序

- 避免索引失效应用,最左前缀法则


- 避免索引失效应用,其他匹配原则









sql优化
大批量插入数据



- 优化insert



- 优化order by语句

order by后边的多个排序字段要求尽量排石方式相同,字段顺序尽量和组合索引字段顺序一致

- 优化子查询


- 优化limit查询



黑马学习整理
本文探讨了如何通过慢日志追踪、explain分析、showprofile与trace工具来识别低效SQL。重点讲解了索引优化、批量插入、orderby和子查询优化的方法,帮助读者理解并改进数据库性能。
1559

被折叠的 条评论
为什么被折叠?



