mysqldumpslow - s r - t 10 / DATABASE / mysql / mysql06_slow.log
得到访问次数最多的10个SQL
1
mysqldumpslow - s c - t 10 / DATABASE / mysql / mysql06_slow.log
得到按照时间排序的前10条里面含有左连接的查询语句
1
mysqldumpslow - s t - t 10 - g “left join” / DATABASE / mysql / mysql06_slow.log
另外建议在使用这些命令时结合 | 和 more 使用,否则有可能出现刷屏的情况
1
mysqldumpslow - s r - t 20 / mysqldata / mysql / mysql06 - slow.log | more
Show Profile分析
概述
Show Profile 是mysql提供的可以用来分析当前会话中SQL语句执行的资源消耗情况的工具,可用于SQL调优的测量。默认情况下处于关闭状态,并保存最近15次的运行结果。把一条SQL在mysql当中每一个环节耗费的时候都记录下来,默认该功能是关闭的,使用前需开启。默认保存最近15次运行的结果。
使用
查看当前版本是否支持
1
SHOW VARIABLES LIKE 'profiling';
打开 profile
1
SET profiling = ON
查看结果
1
SHOW PROFILES
诊断SQL
1
SHOW PROFILE cpu,block io FOR QUERY 88;
当出现以下选项时, 要进行优化
converting HEAP to MyIsAM,查询结果太大,内存都不够用了,往确磁盘上存在了
Creating tmp table,创建临时表,copy数据到临时表,用完再进行删除
Copying to tmp table on disk,把内存中临时表复制到磁盘, 危险操作
Locked,被锁定
全局查询日志
只允许在测试环境用, 不能在生产环境使用,在测试是可以把所有执行的SQL抓取出来查看
设置启用
1
SET GLOBAL general_log = 1;
1
SET GLOBAL log_output = 'TABLE'
此后所编写的SQL语句将会记录到mysql库里的 general_log 表中
1
SELECT * FROM mysql.general_log;
1
mysql - u root - p1234 -- DEFAULT - CHARACTER -SET = utf8