MySQL慢查询日志常用参数配置

慢查询日志

slow log:指query time减去lock time的时间,超过设置的阈值的查询SQL。

常用配置

#通用配置需配置在mysqld标签先,版本独有配置在mysqld-version标签下
[mysqld]
#是否开启慢日志,Type:Boolean  Default Value:OFF
slow_log=0/1
#设置文件名,Type:File name  Default Value:host_name-slow.log
slow_log_file=slow.log

#慢查询的阈值,类型数字 默认值10
long_query_time=2
#扫描少于200行不记记录,类型integer 默认值0
min_examined_row_limit=200
#没用索引的记录日志,Type:Boolean Default Value:OFF
log_queries_not_using_indexes=1
#每分钟限制记录没索引SQL的次数,防止慢查询文件过大。Type:Integer Default Value:0
log_throttle_queries_not_using_indexes=10
#日志记录形式,日志表都在mysql库下
log_output=file/table
#记录管理操作 ALTER TABLE, ANALYZE TABLE, CHECK TABLE, CREATE INDEX, DROP INDEX, OPTIMIZE TABLE, and REPAIR TABLE.
#Type:Boolean  Default Value:OFF
log_slow_admin_statements
#从机开启慢查询日志
log_slow_slave_statements

#通用日志
general_log=0/1
general_log_file=general.log

[mysqld-5.7]
#日志时区,Type:Enumeration(UTC,SYSTEM)  Default Value:UTC 
log_timestamps=system

注意: 如果配置了min_examined_row_limit那扫描的行必须要大于最少行记录,再看有没有满足long_query_time/log_queries_not_using_index才会记录slow log。

慢查询日志太多,如何删除?
用 > slow.log并不会停止写入日志,句柄没关闭。>:清空 >>:追加

  1. mv slow.log slow.log-old
  2. 在数据库中刷新,flush slow logs;

你可能感兴趣的:(mysql,数据库)