大表执行 COUNT(*) 耗时极长,超过10分钟无结果

【 TiDB 使用环境】测试
【 TiDB 版本】v7.5.0
【复现路径】

  1. 单张大表数据量3亿行,表无额外二级索引
  2. 执行 select count(*) from 大表名 统计总行数
  3. 命令执行长时间无返回结果
    【遇到的问题:问题现象及影响】
    无法快速统计表数据行数,数据统计、口径核对类任务阻塞,影响数据分析工作推进。
    【资源配置】
    TiKV节点×6、TiDB节点×3
1 个赞

创建轻量覆盖索引专门用于 count 统计:CREATE INDEX idx_count ON 大表名(主键列);,覆盖索引仅存主键,扫描开销大幅降低;

1 个赞

自增主键热点本质是Region分裂机制,AUTO_RANDOM通过分布式ID写入分散。

升级前在测试环境跑业务回归,对比SQL执行计划。

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