小表region过多,查询很慢

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

【概述】 场景 + 问题概述

有一张维表,两万条数据,近期查询很慢。查看发现有800个region。
这张表是每天都会删除,然后重新写入的。
tidb后台的region merge是有的。

【背景】 做过哪些操作

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

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

想问下:
1,为什么会有这么多的region产生?
2,这张表该如何处理?
3,怎么避免这种情况?

【统计信息是否最新】

    【执行计划内容】

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

【业务影响】

【TiDB 版本】

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

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

看下配置,有没有改默认region大小。
https://docs.pingcap.com/zh/tidb/v5.1/pd-configuration-file

看下pd里面merge region相关配置是不是有改动。

PD监控看看empty-region多不多

3 个赞

pd-ctl config show 看卡merge的key 和size的值是否调大了? show config where name like ‘split%threshold’; 看下loadbase split的值是否调小?

2 个赞

1)可以优化:调小max-merge-region-size、 max-merge-key、patrol-region-interval
2)如果开启了ddl on table ,可以关闭这个功能。默认是关闭的

1 个赞

个人建议,TiDB应该能提供设置单表Region数的功能,不要轻易修改全局性的参数,因为这是对所有表和Region都生效的。

2 个赞

建议重新写入完之后,查下表总大小以及每行数据大小

1 个赞

我们的情况跟你这种一样,按照上边做了调整。

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