TiDB 慢查询: Coprocessor 耗时长

【 TiDB 使用环境】
生产环境

【 TiDB 版本】
TiDB v6.1.1

【资源配置】

【遇到的问题:问题现象及影响】

  1. 比较简单的 sql 查询 (有索引, 整表数据量 15w), 查询速度非常不稳定. 容易出现>5s的慢查询. 正常时候这个句子<0.2s

  2. 出现慢查询的时间点, TiDB Dashboard 监控并没有CPU , 内存或 QPS 的高峰.

  3. 出现慢查询的句子, Coprocessor执行时间占了大头.


可见版本 139k,这一个 SQL 扫了 14w 数据了都。。。。。

1 个赞


全表扫了

1 个赞

可以通过 Dashboard 的 SQL Statement 看一下这个 SQL 是不是两个执行计划?另外就是 WalterWj 老师说的,因为数据版本数较多,要确认一下这张表是否大量的数据更新逻辑,gc-life-time 是多少和 gc 的任务是否正常(通过 TiKV-details → GC 的面板看一下 savepoint 是否正常)

1 个赞

是不是执行计划变异了,扫描全表13.9w数据选择一行,看下duration 有没有对应慢查询时间点的抖动

贴一下 表结构 和 执行的sql语句呢?

是不是这个表DML太频繁了,我遇到过高并发insert、update一个表的时候,count非常慢,停掉应用就秒出。

有可能是gc时间太长 48hour

gc 时间太长,对这个count(*) 也有影响? 读的话不是读的最近一次的版本?