mysql slow log统制
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的执行情况。
下一篇: oracle闪回表详解
推荐阅读
-
MySQL的日志(二):事务日志(redo log和undo log)
-
MySQL:Unsafe statement written to the binary log using statement format since BI
-
MySQL Error Log 中IO能力不足的警告分析
-
Mysql启动中 InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 by
-
log引起的mysql不能启动的解决方法
-
apache中使用mod_log_slow分析响应慢的请求
-
MySQL:Unsafe statement written to the binary log using statement format since BI
-
mysql 开发进阶篇系列 20 MySQL Server(innodb_lock_wait_timeout,innodb_support_xa,innodb _log_*)
-
mysql将bin-log日志文件转为sql文件的方法
-
mysql将bin-log日志文件转为sql文件