【 TiDB 使用环境】
生产环境
【 TiDB 版本】
TiDB v6.1.1
【资源配置】
【遇到的问题:问题现象及影响】
-
比较简单的 sql 查询 (有索引, 整表数据量 15w), 查询速度非常不稳定. 容易出现>5s的慢查询. 正常时候这个句子<0.2s
-
出现慢查询的时间点, TiDB Dashboard 监控并没有CPU , 内存或 QPS 的高峰.
-
出现慢查询的句子, Coprocessor执行时间占了大头.
【 TiDB 使用环境】
生产环境
【 TiDB 版本】
TiDB v6.1.1
【资源配置】
【遇到的问题:问题现象及影响】
比较简单的 sql 查询 (有索引, 整表数据量 15w), 查询速度非常不稳定. 容易出现>5s的慢查询. 正常时候这个句子<0.2s
出现慢查询的时间点, TiDB Dashboard 监控并没有CPU , 内存或 QPS 的高峰.
出现慢查询的句子, Coprocessor执行时间占了大头.
可见版本 139k,这一个 SQL 扫了 14w 数据了都。。。。。
可以通过 Dashboard 的 SQL Statement 看一下这个 SQL 是不是两个执行计划?另外就是 WalterWj 老师说的,因为数据版本数较多,要确认一下这张表是否大量的数据更新逻辑,gc-life-time 是多少和 gc 的任务是否正常(通过 TiKV-details → GC 的面板看一下 savepoint 是否正常)
是不是执行计划变异了,扫描全表13.9w数据选择一行,看下duration 有没有对应慢查询时间点的抖动
贴一下 表结构 和 执行的sql语句呢?
是不是这个表DML太频繁了,我遇到过高并发insert、update一个表的时候,count非常慢,停掉应用就秒出。
有可能是gc时间太长 48hour
gc 时间太长,对这个count(*) 也有影响? 读的话不是读的最近一次的版本?