如何定位低效SQL?
- 可以通过两种方式来定位执行效率较低的SQL语句。一种通过慢查询日志定位,可以通过慢查询日志定位那些已经执行完毕的SQL语句。
- 另一种是使用show processlist查询,慢查询日志在查询结束后才记录,所以在应用反应执行效率出现问题的时候查询慢查询日志不能定位问题,此时可以使用show processlist命令查看当前MySQL正在进行的线程,包括线程的状态,是否锁表,可以实时查看SQL的执行情况,同时对一些锁表操作进行优化。找到执行效率低的SQL语句后,可以通过show profile、explain或trace等丰富来继续优化语句。
欢迎批评指正,提出问题,谢谢!