TiDB 普通表不手动分区,Region 默认分裂阈值是多少?

【TiDB 使用环境】测试环境
【TiDB 版本】v7.5 Community
【部署方式】机器部署(本地虚拟机)
【操作系统/CPU 架构/芯片详情】x86_64 CentOS7
【机器部署详情】2C 4G内存,普通SSD磁盘
【集群数据量】测试数据,十万行以内
【集群节点数】TiUP单机最小集群(1PD+1TiDB+1TiKV)
【问题复现路径】

  1. 使用TiUP搭建单机测试集群
  2. 直接执行CREATE TABLE创建普通业务表,不添加任何PARTITION分区定义
  3. 持续写入测试数据,观察Region自动分裂行为
    【遇到的问题:问题现象及影响】
    学习TiDB分布式存储原理,不清楚无分区普通表Region管理规则。疑问:
  4. 新建空白普通表,初始默认生成几个Region?
  5. TiKV触发Region自动分裂的默认大小阈值是多少?
  6. 十万行规模以内的小业务表,是否建议手动分区优化?
    【资源配置】暂无Dashboard截图
    【复制黏贴 ERROR 报错的日志】无报错
    【其他附件:截图/日志/监控】暂无
    【已查阅操作】翻阅官方架构文档,了解Region是TiKV最小存储单元,但没有找到小表场景最佳实践说明。

一张全新空普通业务表(无预分裂、无分区、无二级索引):只会初始化生成【1 条 Data Region】

  1. 只要表建立了二级索引,每多 1 个索引,会额外再多生成1 个独立 Index Region。 例:表带 1 个普通二级索引 → 建表一共:1 个数据 Region + 1 个索引 Region = 2 个 Region。
  2. 这个初始唯一 Region 会被 PD 随机分配到某一台 TiKV 作为 Leader,副本依照集群副本配置分散存放。
  3. 验证命令(单机测试集群直接执行查看)

sql

SHOW TABLE REGIONS 你的表名;
  1. 关键痛点:自增主键连续写入时,全部写入这个初始 Region,新建表前期必然单 Region 写入热点,数据涨起来自动分裂后热点才会打散。

1、新建空白表,默认为1个region;
2、TiKV 希望每个 Region 保持的大小,默认为96MIB,触发分裂的实际大小上限,默认为144MIB;
3、十万行规模的数据量对于 TiDB 来说非常小,没有必要分区。