@@ -178,10 +178,12 @@ Slow Query 基础信息:
178178### 相关 Hint
179179
180180通过 Hit ` WRITE_SLOW_LOG ` 强制控制输出慢日志。
181+
181182- 不受任何阈值或触发规则限制,即无论该 SQL 是否达到慢日志打印阈值,都会打印慢日志。
182183- 暂不支持强制关闭打印慢日志的方式(如 ` WRITE_SLOW_LOG(FALSE) ` )。
183184
184185使用示例:
186+
185187``` sql
186188SELECT /* + WRITE_SLOW_LOG */ count (* ) FROM t t1, t t2 WHERE t1 .a = t2 .b ;
187189```
@@ -190,21 +192,21 @@ SELECT /*+ WRITE_SLOW_LOG */ count(*) FROM t t1, t t2 WHERE t1.a = t2.b;
190192
191193* [ tidb_slow_log_threshold] ( /system-variables.md#tidb_slow_log_threshold ) :设置慢日志的阈值,执行时间超过阈值的 SQL 语句将被记录到慢日志中。默认值是 300 ms。
192194* [ tidb_slow_log_rules] ( /system-variables.md#tidb_slow_log_rules ) :用于定义慢日志的触发规则,支持多维度指标组合条件,实现更加灵活和精细化的日志记录控制。此变量在新版本中引入,逐步替代传统的单一阈值控制方式,即替代 ` tidb_slow_log_threshold ` 的使用。
193- * 未设置 tidb_slow_log_rules
194- * 慢日志触发仍依赖 tidb_slow_log_threshold,Query_time 阈值取自该变量,以保持向后兼容。
195- * 已设置 tidb_slow_log_rules
196- * 配置的规则优先生效,tidb_slow_log_threshold 将被忽略。
197- * 若希望规则中仍包含 Query_time 的触发条件,可在设置规则时指定。
198- * 规则匹配逻辑(多条规则之间采用 OR 关系):
199- * Session 作用域规则:优先匹配,如果匹配成功,则打印慢日志。
200- * Global 作用域规则:仅在 Session 规则未匹配时考虑:
201- * 若规则指定 ConnID 并与当前 Session 的 ConnID 匹配,则使用该规则。
202- * 若规则未指定 ConnID(全局通用规则),则使用该规则。
203- * 显示变量的行为与普通系统变量一致。
195+ * 未设置 tidb_slow_log_rules
196+ * 慢日志触发仍依赖 tidb_slow_log_threshold,Query_time 阈值取自该变量,以保持向后兼容。
197+ * 已设置 tidb_slow_log_rules
198+ * 配置的规则优先生效,tidb_slow_log_threshold 将被忽略。
199+ * 若希望规则中仍包含 Query_time 的触发条件,可在设置规则时指定。
200+ * 规则匹配逻辑(多条规则之间采用 OR 关系):
201+ * Session 作用域规则:优先匹配,如果匹配成功,则打印慢日志。
202+ * Global 作用域规则:仅在 Session 规则未匹配时考虑:
203+ * 若规则指定 ConnID 并与当前 Session 的 ConnID 匹配,则使用该规则。
204+ * 若规则未指定 ConnID(全局通用规则),则使用该规则。
205+ * 显示变量的行为与普通系统变量一致。
204206 >
205207 > 说明:` tidb_slow_log_rules ` 用于替换单一阈值的方式,实现更灵活和精细化的慢日志控制,支持多维度指标组合条件。
206208 >
207- > 建议:在启用 ` tidb_slow_log_rules ` 后,同时配置 ` tidb_slow_log_max_per_sec ` ,以限制慢日志打印频率,防止基于规则的慢日志触发过于频繁 。
209+ > 建议:在资源充足的测试环境下,多维慢日志规则( ` tidb_slow_log_rules ` )生成的慢日志数量在默认阈值基础上增加约 1,000 倍以内,对系统性能影响有限;当慢日志数量过大(超过 1 万倍级别)时,会显著影响 TPS/QPS 和平均延迟。因此,建议根据业务负载和慢日志预期量谨慎配置规则,推荐结合 ` tidb_slow_log_max_per_sec ` 限制打印速率,避免日志洪泛影响性能 。
208210* [ tidb_slow_log_max_per_sec] ( /system-variables.md#tidb_slow_log_max_per_sec ) :设置控制每秒打印慢日志的上限,默认值为 0。
209211 * 当值为 0,其表示不限制每秒打印的慢日志数量。
210212 * 当值大于 0 时,TiDB 每秒最多打印指定数量的慢日志,超过部分将被丢弃,不会写入慢日志文件。
0 commit comments