Mysql 慢查询
slow_query_log
是否开启慢查询
slow_query_log_file
制定慢查询阈值, 单位是秒,且当版本>=5.5.X ,支持毫秒。例如0.5 即为500ms
log_queries_not_using_indexs
将没有使用索引的SQL记录到慢查询日志
如果一开始因为数据少,查表快,耗时的SQL语句没被记录,当数据量大时,该SQL可能会执行很长时间
需要测试阶段就要发现问题,减小上线后出现问题的概率
log_throttle_queries_not_using_indexes
限制每分钟内,在慢查询日志中,去记录没有使用索引的SQL语句的次数;版本需要>=5.6.X
因为没有使用索引的SQL可能会短时间重复执行,为了避免日志快速增大,限制每分钟的记录次数
min_examined_row_limit
扫描记录少于改值的SQL不记录到慢查询日志
结合去记录没有使用索引的SQL语句的例子,有可能存在某一个表,数据量维持在百行左右,且没有建立索引。这种表即使 不建立索引,查询也很快,扫描记录很小,如果确定有这种表,则可以通过此参数设置,将这个SQL不记录到慢查询日志。
log_slow_admin_statements
记录超时的管理操作SQL到慢查询日志,比如ALTER/ANALYZE TABLE
log_output
慢查询日志的格式,[FILE | TABLE | NONE],默认是FILE;版本>=5.5
如果设置为TABLE,则记录的到mysql.slow_log
log_slow_slave_statements
在从服务器上开启慢查询日志