如何定位低效 SQL
- 通过慢查询日志定位,可以通过慢查询日志定位那些已经执行完毕的sql语句
- 使用show processlist查询
- 慢查询日志在查询结束后才记录,所以在应用反应执行效率出现问题的时候查询慢查询日志不能定位问题,此时可以用show processlist查看当前MySQL正在进行的线程,包括线程的状态、是否锁表等,可以查看sql的执行情况,同时对一些锁表操作进行优化
- 找到效率低的sql后,就可以通过show profile、explain、trace来优化
mysql: show processlist 详解 - Cailiang的文章 - 知乎