show variables like '%slow_query_log';
set global slow_query_log='ON';
# N为设置的时间
set global / session long_query_time = N;
show global / session variables like '%long_query_time%';
show variables like '%slow_query_log_file%';
show GLOBAL STATUS LIKE '%Slow_queries%';
mysqldumpslow MySQL提供了的日志分析工具,可以帮助我们分析日志,查找、分析SQL。
#得到返回记录集最多的10个SQL
mysqldumpslow -s r -t 10 /usr/local/mysql/data/alvin-slow-slow.log
#得到访问次数最多的10个SQL
mysqldumpslow -s c -t 10 /usr/local/mysql/data/alvin-slow-slow.log
#得到按照时间排序的前10条里面含有左连接的查询语句
mysqldumpslow -s t -t 10 -g "left join" /usr/local/mysql/data/alvin-slow-slow.log
#另外建议在使用这些命令时结合 | 和more 使用 ,否则有可能出现爆屏情况
mysqldumpslow -s r -t 10 /usr/local/mysql/data/alvin-slow-slow.log | more
#为了不互相混淆,手动删除慢查询日志文件命令。
mysqladmin -uroot -p flush-logs slow
最后要关闭慢SQL日志,不然可能影响性能。
show @@have_profiling
show @@profiling
SET profiling = 1
show profiles
show profile for query query_id
show profile CPU for query query_id
explain执行计划各字段含义: