某段时间出现非常大量的show variables like 'sql_mode'

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】

【概述】 场景 + 问题概述

【背景】 做过哪些操作

【现象】 业务和数据库现象

【问题】 当前遇到的问题,参考 AskTUG 的 Troubleshooting 读性能慢-慢语句


某段时间出现大量的show variables like ‘sql_mode’, 这应该不是人为的查询, 是有某些后台操作或者insert 数据的时候, 自动会触发这条 show variables like…吗?

【统计信息是否最新】

    【执行计划内容】

    【 SQL 文本、schema 以及 数据分布】

【业务影响】

【TiDB 版本】 v4.0.10

引用

【附件】 相关日志及监控(https://metricstool.pingcap.com/)

  • TiUP Cluster Display 信息
  • TiUP CLuster Edit config 信息
  • TiDB-Overview Grafana监控
  • TiDB Grafana 监控
  • TiKV Grafana 监控
  • PD Grafana 监控
  • 对应模块日志(包含问题前后 1 小时日志)
1赞

可以看下这个帖子:SHOW VARIABLES LIKE 'sql_mode'; 很慢

如果 VARIABLE 发生变化,SHOW VARIABLES 实际上会查询所有的会话变量和全局变量,并且全局变量将从 mysql.global_variables 一次加载一行的值,导致整个过程比较慢。

近期 master 版本已对这个问题进行优化,后续会带入正式版本,可以关注相关 pr 的进展 https://github.com/pingcap/tidb/pull/24359

2赞

这个帖子说的是单次show variables … 很慢的问题, 那我理解了, 但是我还有一个为什么我那个show variable like 的执行次数这么多呢, 它应该不是人为在命令行下执行的.

1赞

一般是应用框架自动执行的,可以问一下应用。

是不是用的不是长链接啊。

2赞

jdbc每次建立链接会发一系列的sql,其中就包括这个。你看看是不是链接断开了一批。或者tidb节点是不是重启了一个?

2赞

insert的时候是通过haproxy 连接的,haproxy的设置是
image
看起来是长连接?

1赞

结点应该没有重启. 怎么知道链接是不是断开了一批呢?

1赞

问一下应用的连接池怎么配置的,用的长还是短连接。

和 haproxy 相关性不大的

2赞

跟应用方沟通了一下, 确实是用的短连接. 待修改后看看还有没有问题

1赞

可惜点不了多个对我有用

1赞

有个监控,disconnect connections,可以看到的。在tidb的详细面板里面。

1赞

发现只有一个connection count ,没有发现有disconnect connections, 是不是我版本太老的原因 v4.0.10

1赞

我这边V5版本监控里是有的。

从文档来看,V4版本最后是有这个监控项的,可能是哪个小版本新加的:

1赞

HHHHHH看的就是。5.0以上有,你的没有。