Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | 51CTO学院 | CSDN程序员研修院 | OSChina 博客 | 腾讯云社区 | 阿里云栖社区 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏多维度架构

20.7. mysqldumpslow - Parse and summarize the MySQL slow query log.

开启记录日志,修改my.cnf加入下面几行

--log-slow-queries[=file_name]

		
long_query_time = 10
log-slow-queries =
		
		

long_query_time 是指执行超过10秒的sql会被记录下来。

log-slow-queries设置把日志文件的位置,如果没有给出文件名值, 默认未主机名,后缀为-slow.log。如果给出了文件名,但不是绝对路径名,文件则写入数据目录。

cat /etc/mysql/my.cnf

[mysqld]
set-variable=long_query_time=1
log-slow-queries=/var/log/mysql/log-slow-queries.log


You must create the file manually and change owners this way:

touch /var/log/mysql/log-slow-queries.log
chown mysql.mysql -R /var/log/mysql/log-slow-queries.log
		
$ mysqldumpslow /var/log/mysql/log-slow-queries.log
		

mysqldumpslow 参数

  1. -s,是order的顺序,说明写的不够详细,俺用下来,包括看了代码,主要有c,t,l,r和ac,at,al,ar,t=time, l=lock time, r=rows分别是按照query次数,时间,lock的时间和返回的记录数来排序,前面加了a的时倒叙

  2. -t,是top n的意思,即为返回前面多少条的数据

  3. -g,后边可以写一个正则匹配模式,大小写不敏感的

  4. -g,后边可以写一个正则匹配模式,大小写不敏感的

		
mysqldumpslow -s c -t 20 ubuntu-slow.log
		
		

		
mysqldumpslow -s r -t 20 ubuntu-slow.log