mysql.bind_info无记录,慢SQL中仍有使用绑定的查询

【TiDB 使用环境】生产环境
【TiDB 版本】v6.5.2
【操作系统】CentOS7.9
【部署方式】vmware vsphere
【集群数据量】1TB
【集群节点数】3PD+3TiKV+2TiDB+2Tiflash
【问题复现路径】
【遇到的问题:问题现象及影响】以前开启过“自动演进绑定”,现已关闭。
mysql.bind_info无记录,慢SQL中仍有使用绑定的查询(已执行admin reload bindings )。已导致的SQL性能退化。



【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面

【复制黏贴 ERROR 报错的日志】
【其他附件:截图/日志/监控】

没有遇到过这个问题。。但tidb这个功能挺实用的。。。

之前mysql使用force index。。然后删除索引。导致过问题。。

建议提交给官方。是不是BUG

@Billmay表妹 是bug吗?

首先检查是否存在会话级别的绑定:
SHOW SESSION BINDINGS;

强制刷新绑定缓存
执行以下命令强制刷新所有TiDB实例的绑定缓存:
ADMIN FLUSH BINDINGS;
ADMIN RELOAD BINDINGS;

检查绑定缓存状态
查看当前TiDB实例的绑定缓存状态:
SHOW binding_cache status;

1 个赞

建议先执行 admin flush bindings 强制清理绑定缓存,然后检查是否仍有慢SQL使用绑定。若问题依旧,可尝试手动清除残余绑定信息并重启TiDB节点彻底释放内存中的绑定缓存。

ADMIN FLUSH BINDINGS;
SELECT @@LAST_PLAN_BINDING_CREATE_TIME;  -- 确认无新绑定生成
SHOW GLOBAL VARIABLES LIKE 'tidb_evolve_plan_baselines';  -- 确认关闭状态

若持续出现性能退化,建议检查执行计划是否回归并考虑使用SQL提示临时稳定性能。

1 个赞


没有会话级绑定。直接查询也正常。应用过来的使用绑定了,不知道啥原因。
现在强制刷新绑定缓存了
ADMIN FLUSH BINDINGS;
ADMIN RELOAD BINDINGS;

单表的清理试试



强制刷新所有TiDB实例的绑定缓存后,还是有SQL执行的时候使用了绑定

mysql> set global tidb_mem_quota_binding_cache=0;
Query OK, 0 rows affected (0.06 sec)

mysql> ^C
mysql> ADMIN FLUSH BINDINGS;
Query OK, 0 rows affected (0.01 sec)

mysql> ADMIN RELOAD BINDINGS;
Query OK, 0 rows affected (0.00 sec)

mysql>


将tidb_mem_quota_binding_cache设置为0后,没有再出现走绑定的慢SQL了。 :clown_face:

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