【MySql】mysql 慢日志查询工具之mysqldumpslow

    当使用--log-slow-queries[=file_name]选项启动时,mysqld写一个包含所有执行时间超过long_query_time秒的SQL语句的日志文件。获得初使表锁定的时间不算作执行时间。

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

语句执行完并且所有锁释放后记入慢查询日志。记录顺序可以与执行顺序不相同。

慢查询日志可以用来找到执行时间长的查询,可以用于优化。但是,检查又长又慢的查询日志会很困难。要想容易些,你可以使用mysqldumpslow命令获得日志中显示的查询摘要来处理慢查询日志。

    在MySQL 5.1的慢查询日志中,不使用索引的慢查询同使用索引的查询一样记录。要想防止不使用索引的慢查询记入慢查询日志,使用--log-short-format选项。

在MySQL 5.1中,通过--log-slow-admin-statements服务器选项,你可以请求将慢管理语句,例如OPTIMIZE TABLE、ANALYZE TABLE和 ALTER TABLE写入慢查询日志。

用查询缓存处理的查询不加到慢查询日志中,因为表有零行或一行而不能从索引中受益的查询也不写入慢查询日志。

mysqldumpslow 的常用参数如下:

-s 后面接下面的参数表示 mysqldumpslow 结果显示的顺序!

c query执行的次数

t sql执行的时间

l lock锁表的时间

r sql返回的行数

ac,at,al,ar,表示倒序排列

-t,是top n,即为返回前面n条数据。

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

显示执行时间最长的前两个

[root@rac3 python]# mysqldumpslow  -s t -t 2 /opt/mysql/data/slowquery.log  

Reading mysql slow query log from /opt/mysql/data/slowquery.log

Count: 2  Time=412.54s (825s)  Lock=0.00s (0s)  Rows=1.0 (2), root[root]@localhost

  select count(N) from sbtest ,t1 where t1.c=sbtest.c

Count: 1  Time=778.20s (778s)  Lock=0.00s (0s)  Rows=1.0 (1), root[root]@localhost

  select count(N) from  sbtest where sbtest.id not in ( select id from t1 )

#显示次数最多的前两个 

[root@rac3 python]# mysqldumpslow  -s c -t 2 /opt/mysql/data/slowquery.log      

Reading mysql slow query log from /opt/mysql/data/slowquery.log

Count: 12  Time=0.00s (0s)  Lock=0.00s (0s)  Rows=1.0 (12), root[root]@localhost

  select count(N) from tab_1

Count: 2  Time=412.54s (825s)  Lock=0.00s (0s)  Rows=1.0 (2), root[root]@localhost

  select count(N) from sbtest ,t1 where t1.c=sbtest.c

[root@rac3 python]#

时间: 2024-09-13 17:55:41

【MySql】mysql 慢日志查询工具之mysqldumpslow的相关文章

【MySql】 慢日志查询工具之mysqlsla

mysqlsla 是一款由hackmysql.com推出的一款日志分析工具,功能非常强大. 图形输出数据报表,非常有利于分析慢查询的原因, 包括执行频率, 数据量, 查询消耗等! 1 安装 [root@rac3 software]# wget http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz [root@rac3 software]# tar zvxf mysqlsla-2.03.tar.gz [root@rac3 software]# mv m

MySQL数据库慢日志分析工具mysqlsla使用教程

mysqlsla是hackmysql.com推出的一款mysql的日志分析工具,功能非常强大. 数据报表,非常有利于分析慢查询的原因, 包括执行频率, 数据量, 查询消耗等. 一.使用 mysqlsla -lt slow mysql-slow.log 或者 mysqlsla -lt slow mysql-slow.log -sf "+SELECT" -db dbName -top 10 -sort t_sum 参数意义 lt:表示日志类型,有slow, general, binary,

MySQL慢日志查询全解析:从参数、配置到分析工具

MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中.long_query_time的默认值为10,意思是运行10S以上的语句.   默认情况下,MySQL数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响.慢查询日志支持将日志记录写入文件,也支持将日志记录写入数据

MySQL的日志分析工具

MySQL的性能从查看日志开始.硬件配置低常常导致这样的问题,但事实上大多数情况并不在这里.某些"慢"SQL阻塞了其他语句的执行,优化查询是第一步需要做的. "工欲善其事必先利其器",MySQL自身的一款mysqldumpslow 查询日志分析器,该工具不但陈旧,验证规范不准确.今天要说的是Percona 的工具pt-query-digest,它能够分析慢查询日志内容,生成查询报告,过滤,重放或传送一些查询语句至MySQL,PostgreSQL,memcached或

MySQL慢查询处理之mysqldumpslow和mysqlsla

Windows下开启MySQL慢查询 MySQL在Windows系统中的配置文件一般是是my.ini找到[mysqld]下面加上 log-slow-queries = F:\MySQL\log\mysqlslowquery.log long_query_time = 2 Linux下启用MySQL慢查询 MySQL在Windows系统中的配置文件一般是是my.cnf找到[mysqld]下面加上 log-slow-queries=/data/mysqldata/slowquery.log long

mysql(slow-query)快速开启慢日志查询的方法

mysql(slow-query)快速开启慢日志查询的方法 mysql有一个功能就是可以log下来运行的比较慢的sql语句,默认是没有这个log的 打开 my.ini ,找到 [mysql] 在其下面添加 long_query_time = 2 log-slow-queries = D:/mysql/logs/slow.log #设置把日志写在那里,可以为空,系统会给 一个缺省的文件 #log-slow-queries = /var/youpath/slow.log linux下host_nam

mysql中slow query log慢日志查询分析

一.慢查询日志 配置 开启慢查询日志 , 配置样例: /etc/mysql/my.cnf [mysqld] log-slow-queries 在 my.cnf 配置文件中增加上述配置项并重启 mysql 服务,这时 mysql 慢查询功能生效.慢查询 日志将写入参数 DATADIR (数据目录:/var/lib/mysql) 指定的路径下,默认文件名是 host_name-slow.log . 和错误日志.查询日志一样,慢查询日志记录的格式也是纯文本,可以被直接读取.下例中演示了慢查询日志的设置

mysql 的慢日志中记录的查询时间非常大。。但是实际执行速度还可以。求助!

问题描述 mysql 的慢日志中记录的查询时间非常大..但是实际执行速度还可以.求助! Query_time: 18446744073709.234375 Lock_time: 0.000050 Rows_sent: 1 Rows_examined: 78415 use news;SET timestamp=1378690201;select idfile.....position from 表名 where id='164185' order by position;

MySQL中用通用查询日志找出查询次数最多的语句的教程_Mysql

MySQL开启通用查询日志general log mysql打开general log之后,所有的查询语句都可以在general log文件中以可读的方式得到,但是这样general log文件会非常大,所以默认都是关闭的.有的时候为了查错等原因,还是需要暂时打开general log的(本次测试只修改在内存中的参数值,不设置参数文件). general_log支持动态修改: mysql> select version(); +-----------+ | version() | +------