MySQL日志文件——慢查询日志

发表于:2013-5-07 09:16

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Robbin    来源:51Testing软件测试网采编

  顾名思义,慢查询日志中记录的是执行时间较长的 query

  可以设一个阀值、将运行时间超过该值的所有SQL语句都记录到慢查询日志文件中

  该阀值可以通过参数long_query_time来设置、默认是10秒

  这里需要一点、对于运行时间正好等于long_query_time的情况、并不会被记录

  因为、在源代码里是判断大于long_query_time、而非大于等于

mysql> show variables like 'log_slow_queries';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| log_slow_queries | ON    |
+------------------+-------+
1 row in set (0.00 sec)

mysql> show variables like 'long_query_time';
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.00 sec)

  另一个和慢查询日志相关的参数是log_queries_not_using_indexes

  如果运行的SQL没有使用索引、则MySQL同样会将这条语句记录到慢查询日志文件

mysql> show variables like 'log_queries_not_using_indexes';
+-------------------------------+-------+
| Variable_name                 | Value |
+-------------------------------+-------+
| log_queries_not_using_indexes | OFF   |
+-------------------------------+-------+
1 row in set (0.00 sec)

  在这里、我没有开启、但有点需要提醒、如果在线修改该参数、虽然没有报错、但是不会生效

  MySQL 还提供了专门用来分析满查询日志的工具程序 mysqldumpslow、用来帮助MySQL DBA解决可能存在的性能问题

  例子、获得 TOP-5 SQL语句:

[mysql@localhost bin]$ ./mysqldumpslow -s al -n 5 /home/mysql/mysql/log/slow.log

Reading mysql slow query log from /home/mysql/mysql/log/slow.log
Count: 1  Time=0.00s (0s)  Lock=0.00s (0s)  Rows=0.0 (0), 0users@0hosts

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号