方法通过查看mysql的滚动查询日志分析,例如,可以在tail -f slow_query.log中查看内容和字段的含义
#time:11010716336022:11
# user @ host : root [ root ] @ localhost [ ]
# query _ time :9.869362 lock _ time :000035 rows _ sent :1 rows _ examined :6261774
设置时间表=1294388531;
selectcount(* ) from ep_friends;
第一行,执行SQL查询的时间
第2行,用于执行SQL查询的连接信息
第三行记录了一些对我们有用的信息
Query_time SQL的执行时间越长越慢
Lock_time在MySQL服务器而不是存储引擎阶段等待表锁定时间
Rows_sent查询返回的行数
Rows_examined查询检查的行数
鲜艳的外套:使用mysqldumpslow命令进行分析。 范例
mysqldumpslow-sc-T10/tmp/slow-log
这将输出记录次数最多的10个SQL语句。 现在,如下所示。
-s表示如何排序,c、t、l、r分别按照记录次数、时间、查询时间、返回的记录数进行排序,ac、at、al、ar表示对应的闪回; -t表示top n的意思,返回前面的多少条数据; -g,后可书写正则匹配模式,大小写不敏感;
例如
/path/mysqldumpslow-Sr-T10/tmp/slow-log
返回记录集最多的10个查询。
/path/mysqldumpslow-ST-T10-g“左连接”/tmp/slow-log
得到前10个按时间排序的查询语句,其中包括左连接。