【体系结构】MySQL 日志文件--慢查询日志
2013-04-14 12:02
393 查看
顾名思义,慢查询日志中记录的是执行时间较长的 query
可以设一个阀值、将运行时间超过该值的所有SQL语句都记录到慢查询日志文件中
该阀值可以通过参数long_query_time来设置、默认是10秒
这里需要一点、对于运行时间正好等于long_query_time的情况、并不会被记录
因为、在源代码里是判断大于long_query_time、而非大于等于
另一个和慢查询日志相关的参数是log_queries_not_using_indexes
如果运行的SQL没有使用索引、则MySQL同样会将这条语句记录到慢查询日志文件
在这里、我没有开启、但有点需要提醒、如果在线修改该参数、虽然没有报错、但是不会生效
MySQL 还提供了专门用来分析满查询日志的工具程序 mysqldumpslow、用来帮助MySQL DBA解决可能存在的性能问题
例子、获得 TOP-5 SQL语句:
更多用法、请咨询 ./mysqldumpslow --help
从5.1.6版本开始,慢查询日志即可以是个文件,也可以保存在数据库中的指定表
参数log_output指定了慢查询输出的格式、默认为file、你也可以将它设为table
参数log_output是动态的、并且是全局的、我们能够在线进行变更
在这个例子里、我设置了睡眠15秒、那么这句SQL就会被记录到slow_log表
需要注意的是,慢查询日志中有可能记录到与用户权限或密码相关的语句,因此慢查询日志文件的保存也要注意安全
可以设一个阀值、将运行时间超过该值的所有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
更多用法、请咨询 ./mysqldumpslow --help
从5.1.6版本开始,慢查询日志即可以是个文件,也可以保存在数据库中的指定表
参数log_output指定了慢查询输出的格式、默认为file、你也可以将它设为table
参数log_output是动态的、并且是全局的、我们能够在线进行变更
mysql> show variables like 'log_output'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | log_output | FILE | +---------------+-------+ 1 row in set (0.00 sec) mysql> set global log_output='TABLE'; Query OK, 0 rows affected (0.00 sec) mysql> show variables like 'log_output'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | log_output | TABLE | +---------------+-------+ 1 row in set (0.00 sec) mysql> select sleep(15); +-----------+ | sleep(15) | +-----------+ | 0 | +-----------+ 1 row in set (15.02 sec) mysql> select * from mysql.slow_log\G; *************************** 1. row *************************** start_time: 2013-04-14 01:22:29 user_host: root[root] @ localhost [] query_time: 00:00:15 lock_time: 00:00:00 rows_sent: 1 rows_examined: 0 db: test last_insert_id: 0 insert_id: 0 server_id: 1 sql_text: select sleep(15) 1 row in set (0.00 sec)
在这个例子里、我设置了睡眠15秒、那么这句SQL就会被记录到slow_log表
需要注意的是,慢查询日志中有可能记录到与用户权限或密码相关的语句,因此慢查询日志文件的保存也要注意安全
相关文章推荐
- 【体系结构】MySQL 日志文件--慢查询日志
- MySQL日志文件之错误日志和慢查询日志详解
- 【体系结构】MySQL 日志文件--错误日志
- MySQL日志文件之错误日志和慢查询日志详解
- MySQL日志文件之错误日志和慢查询日志详解
- mysql dba系统学习(8)查询日志文件功能
- 20,MySQL 8.0参考手册4.6.9 mysqldumpslow - 总结慢速查询日志文件
- 【体系结构】MySQL 日志文件--二进制日志:Binary Log & Binary Log Index
- mysql dba系统学习(8)查询日志文件功能 mysql dba系统学习(9)slow query log慢查询日志功能
- 使用mysqlbinlog从二进制日志文件中查询mysql执行过的sql语句
- Linux定时修改MySQL慢查询日志文件名
- mysql慢查询日志进行按库切割重写文件然后分析
- mysql文件类型-->查询日志文件
- 操作3 mongodb和mysql 开启慢查询日志 ,以及mongodb从配置文件启动
- mysql日志文件查询问题 乐杨俊
- 操作3 mongodb和mysql 开启慢查询日志 ,以及mongodb从配置文件启动
- mysql--通用日志(查询日志)
- MySQL之慢查询-删除慢查询日志
- MySQL 慢查询日志分析及可视化结果
- mysql查询优化--临时表和文件排序(Using temporary; Using filesort问题解决)