一、 慢查询日志配置
1. 在my.ini配置文件中添加以下选项:
log-slow-queries=master-0-slow.log ##慢查询日志位置
log-queries-not-using-indexes=on ##没有使用索引的Query也计入慢查询日志
long_query_time=1 ##当Query语句大于1秒时记入慢查询日志
2. 在命令窗口通过命令查询慢查询配置信息
1>查看Query语句执行时间大于多少秒计入慢查询日志
通过命令行动态配置:MySQL> set long_query_time=1;
2>查看慢查询日志是否打开与存放路径
通过命令行动态配置:MySQL> set global slow_query_log='ON'
二、 慢查询日志格式
# Time: 120331 10:05:48
# User@Host: root[root] @ 91SK-B49337164E [10.10.10.99]
# Query_time: 14.031250 Lock_time: 0.218750 Rows_sent: 0 Rows_examined: 90785
SET timestamp=1333159548;
delete from orderinfo;
这是慢查询日志中的一条,用了14.031250秒,锁了0.218750秒,返回0行,一共查了90785行
三、通过mysqldumpslow命令查看慢查询日志
1.由于mysql自带命令mysqldumpslow.pl使用的是perl脚本,所以需要安装perl环境。下载ActivePerl.exe安装包并进行安装。
2.在DOS命令行下执行mysqldumpslow命令
使用mysqldumpslow命令在f:\master-0-slow.log慢查询日志中查找日志中记录次数最多的前10条SQL语句。并存放到f:\master-slow-0.txt文件中。
3. mysqldumpslow命令解析
-s, 表示按照何种方式排序,c、t、l、r分别是按照记录次数、时间、查询时间、返回的记录数来排序,ac、at、al、ar,表示相应的倒叙;
-t, 是top n的意思,即为返回前面多少条的数据;
-g, 后边可以写一个正则匹配模式,大小写不敏感的;
例如:
1> 返回记录集最多的10个查询。
2> 按照时间排序的前10条里面含有左连接的查询语句。