把慢查询阈值真实调到0.1秒,跑一条慢的SLEEP查询和一条快的简单查询,验证判断标准到底是耗时还是查询本身的复杂度。
代码SET GLOBAL slow_query_log=1; SET GLOBAL long_query_time=0.1; SET GLOBAL slow_query_log_file='/tmp/real_slow.log'; SELECT SLEEP(0.3); -- 真实耗时0.3秒,超过阈值 SELECT 1; -- 真实耗时几乎为0
# Time: 2026-09-28T11:31:58.366542Z # User@Host: root[root] @ localhost [] Id: 909 # Query_time: 0.342315 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 1 use mysqllab; SET timestamp=1790595118; SELECT SLEEP(0.3);
日志里真实只出现了SELECT SLEEP(0.3)这一条,Query_time真实精确记到了0.342315秒(比SLEEP参数本身的0.3秒略多一点,真实包含了查询解析、结果返回这些额外开销)。紧接着跑的SELECT 1真实完全没有出现在日志里——它的耗时远低于0.1秒的阈值。
每一步都是本文上面用真实的慢查询日志文件跑出来的原始结果。