慢查询日志是MySQL提供的重要功能,当SQL的执行时间超过阈值 long_query_time时,通常会将这条SQL记录到慢查询日志中。
对于慢查询日志,比较重要的几个参数如下:
slow_query_log=1long_query_time=0.5slow_query_log_file=/mysql/data/mysql_slow.logslow_query_log表示是否开启慢查询
long_query_time表示慢查询阈值,SQL执行时间超过该值,则会记录到慢查询日志中。SQL的执行耗时不包含锁等待时间。
slow_query_log_file表示慢日志所在的路径。
除了以上这几个参数外,还有一些参数与慢查询日志有关,如下:
log_queries_not_using_indexes=1log_throttle_queries_not_using_indexes=20min_examined_row_limit=100log_slow_admin_statements=1log_slow_slave_statements=1log_queries_not_using_indexes: 没有使用索引的SQL也将被记录到慢查询日志中;
log_throttle_queries_not_using_indexes: 如果log_queries_not_using_indexes打开,没有使用索引的sql将会写入到慢查询日志中,该参数将限制每分钟写入的SQL数量;
min_examined_row_limit: 对于查询扫描行数小于此参数的SQL,将不会记录到慢查询日志中;
log_slow_admin_statements: 管理语句执行时间大于阈值也将写入到慢查询