慢查询日志
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并不会停止写入日志,句柄没关闭。>:清空 >>:追加
- mv slow.log slow.log-old
- 在数据库中刷新,flush slow logs;