欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

mysql slow log统制

程序员文章站 2022-05-29 20:50:53
...

mysql slow log控制 参考官方文档:http://dev.mysql.com/doc/refman/5.6/en/slow-query-log.html ? ? ? MySQL能够记录执行时间超过参数 ? long_query_time ? 设置值的SQL语句,默认是不记录的。 获得初始锁定的时间不算作执行时间。mysqld在SQL执行完和所有

mysql slow log控制

参考官方文档:http://dev.mysql.com/doc/refman/5.6/en/slow-query-log.html

?

?

?

MySQL能够记录执行时间超过参数?long_query_time?设置值的SQL语句,默认是不记录的。

获得初始锁定的时间不算作执行时间。mysqld在SQL执行完和所有的锁都被释放后才写入日志。且记录顺序可能不同于执行顺序。

5.1.6以前mysql使用--log-slow-queries[=file_name]来开启记录慢的SQL。

MySQL 5.1.6:日志可以记录在文件或是表中,由参数e?--log-output来指定日志的目标类型。

MySQL5.1.12: 使用?--slow_query_log[={0|1}]代替log-slow-queries,一个默认日志文件被使用

MySQL5.1.29: 使用slow_query_log[={0|1}]控制日志启用,slow_query_log_file=file_name指定日志文件。log-slow-queries参数弃用。


默认:管理语句和没有使用index的查询将不记录。可以通过??--log-slow-admin-statements?和?log_queries_not_using_indexes来设定是否记录。

管理语句包括: ALTER TABLE, ANALYZE TABLE, CHECK TABLE, CREATE INDEX, DROP INDEX, OPTIMIZE TABLE,? REPAIR TABLE.

如果设置了log_queries_not_using_indexes,可能引起日志文件快速增长,可以考虑使用参数log_throttle_queries_not_using_indexes?设置每分钟记录能够记录的数量。


默认:一个复制从库不会记录复制查询的日志。为了改变这个,可以使用参数--log-slow-slave-statements

直接查看慢查询日志文件是一项艰巨的任务,我们可以使用mysqldumpslow工具来辅助。?Section?4.6.8, “mysqldumpslow?— Summarize Slow Query Log Files”.


另外:慢查询日志是在查询结束后才记录,故正在执行的慢SQL并不能被定位到,可以使用show processlist命令查看当前MySQL在进行的线程,包括线程的状态、是否锁表等等,可以实时地查看SQL的执行情况。