修改/etc/my.cnf文件
long_query_time=1 \\查询超时1秒即为慢查询
slow_query_log_file=/tmp/slow.log \\慢查询日志存放位置
在mysql控制台设置
mysql> set long_query_time=1; \\设置查询超时1秒即为慢查询
mysql> set global slow_query_log_file='日志位置' \\设置慢查询日志存放位置
mysql> show variables like 'long%'; \\查看慢查询的条件
mysql> show variables like 'slow%'; \\查看慢查询详细信息
mysql> set global slow_query_log='ON' \\开启慢查询
mysqldumpslow慢查询工具
选项:
-s 是表示按照何种方式排序; c 按照记录次数来排序 t 按照时间来排序 l 按照查询时间来排序 r 按照返回的记录数来排序 ac 按照记录次数来倒序 at 按照时间来倒序 al 按照查询时间来倒序 ar 按照返回的记录数来倒序; -t 是top n的意思,即为返回前面多少条的数据; -g 后边可以写一个正则匹配模式,大小写不敏感的;
例:
mysqldumpslow -s c -t 10 slow.log 输出记录次数最多的10条SQL语句
mysqldumpslow -s r -t 10 slow.log 得到返回记录集最多的10个查询。
mysqldumpslow -s t -t 10 -g “left join” slow.log 得到按照时间排序的前10条里面含有左连接的查询语句。