升级到4.0.9版本后show variables 变的非常慢,一条SQL查询性能下降几十倍

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:

【TiDB 版本】
4.0.9

【问题描述】
从3.0.8升级到4.0.9 版本后,在异地机房的节点执行show variables where variable_name=‘language’ or variable_name=‘net_write_timeout’
这个连接是java的驱动mysql-connector-java-5.1.30触发的,在3.0.8版本中,在异地机房的节点执行0.3秒,升级到4.0.9后在异地机房执行变成39秒,请帮忙看看啥原因?

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

每次都这样?另外,本地机房的表现如何

是每次都这样,本地查询很快。

目前本地和同城的节点执行时间在0.3秒左右

使用 trace format=‘row’ set xxx 看看这个语句哪里慢

有遇到这个问题的吗?感觉和tidb的版本有关系

根本原因看起来是,因为显示变量调用GetSessionSystemVar的所有变量(会话、全局等,而且没有推倒条件,如=sql_mode)。
https://github.com/pingcap/tidb/blob/master/sessionctx/variable/varsutil.go#L152-L167
会尝试改进,多谢。