查询官方文档后,可以得知一条 sql 需要经如下流程,来判断是否写入慢日志
首先需开启慢日志记录 slow_query_log=ON
sql 必须不是管理语句,或者 log_slow_admin_statements=ON
sql 查询耗时超过 long_query_time 值,或者启用 log_queries_not_using_indexes,并且该查询不使用任何索引进行行查找。
该查询必须至少检查了 min_examined_row_limit 行。
根据 log_throttle_queries_not_using_indexes 设置,不得超过禁止的大小。
补充:经实际验证(mysql5.7.25)当 log_slow_admin_statements 开启后,若需要 ALTER TABLE, ANALYZE TABLE, CHECK TABLE, CREATE INDEX, DROP INDEX, OPTIMIZE TABLE, and REPAIR TABLE 等也会被记录的话,则不能设置 min_examined_row_limit 参数有限制。