关于log.expensive-threshold配置项与tidb_expensive_query_time_threshold系统变量的疑问

在文档《在线修改 TiDB 配置》中有如下描述:

image
TiDB配置参数log.expensive-threshold对应的系统变量为tidb_expensive_query_time_threshold

但是,在TiDB配置参数文档中,对log.expensive-threshold的描述,指的是行数,如下:

对系统变量tidb_expensive_query_time_threshold的描述,指的是时间,如下:

疑问如下:

  1. 文档《在线修改 TiDB 配置》中,对于log.expensive-threshold对应的系统变量为tidb_expensive_query_time_threshold的描述,是否不准确?
  2. 文档中描述,当查询行数超过 log.expensive-threshold 时,会记录 [EXPENSIVE_QUERY] 日志。但是,根据多位 TiDBer 使用反馈,该配置参数不起作用。只有触发 mem-quota-query(tidb_mem_quota_query)tidb_expensive_query_time_threshold,才会记录 [EXPENSIVE_QUERY]日志。

麻烦官方确认以上两点疑问?

log.expensive-threshold 这个参数在新版本不起作用了
https://github.com/pingcap/tidb/pull/10350/
这个 PR 的改动之前, log.expensive-threshold 是通过优化器阶段,判断结果行数可能超过 1000 就会打 [EXPENSIVE_QUERY] 的 log
改动之后,误把这个行为给干掉了。而对应的文档没有及时更新,所以现状是 log.expensive-threshold 配置没啥用了

<在线修改配置> 那里面,应该也是文档错误, log.expensive-threshold 并不对应到 tidb_expensive_query_time_threshold

https://github.com/pingcap/tidb/pull/37667
提了个 PR 去修一修

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。