当前位置:Gxlcms > mysql > mysqlslowlog统制

mysqlslowlog统制

时间:2021-07-01 10:21:17 帮助过:21人阅读

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的执行情况。

人气教程排行