region 数量的问题

【 TiDB 版本】7.1
select * from INFORMATION_SCHEMA.TIKV_REGION_STATUS
where db_name=‘data_real’
and table_name=‘rder_control_real’
and IS_INDEX=0

问题1:结果有24行,是不是代表我的数据大概就有24*96M(所有tikv节点的总量)? 写满一个region才会写第二个吧?
第二个问题:一个region就只会写入一个表的数据吗?会有多个表的数据写入一个region吗(排除系统表)
第三个问题:这个表相同的数据,导出到测试环境,上面的语句只有2行,也就是说只占用了2个region,为什么呢?

并不是,有的region是不到96M的,也有的region还有可能会超过96M

不是的

会有一个region存在多个表数据的情况的

数据导入的时候,是连续写入的,所以会出现你的情况,当然还跟建表时region是否预分配region有关

1 个赞

查了下,确实有一个region放了多个表的数据或索引
建表时都没有预分配region
清晰了不少,感谢

不会写满一个region才写下一个

一个region可以有多个表

问题1:96M参数可以调整,这个是region分裂的参数。一个表的region是可以手工设置,但是如果数量不足,可能设置后还会被合并,当然也有参数可以抑制系统自动合并。
第二个问题:实测,可以多个表,而且表数据和索引数据混合存储。
第三个问题:因为生产环境往往比测试环境配置高。简单说就是tikv的数量多,为了增强并发能力,PD会自动打散表数据到多个region,另外,生产环境可能replica数量也会多一些,看你们设置。测试环境机器配置差,有的甚至是单机,当然只能减少region了。

以上这些问题都清晰了吗

学习了,谢谢专家的分享!

region到了96M会自动分裂的。

split-table

为每个 table 建立单独的 Region。
默认值:true
如果需要创建大量的表(例如 10 万张以上),建议将此参数设置为 false。

region到96m会自动分裂的。

region会自动分裂的。

视频里提过一句,写满一个region,会生成一个新的region。虽然是逻辑文件,但是应该是有机制去轮询检查大小和生成时机

Region是逻辑概念,物理上是个kv数据库,按key有序排列,region也不是一开始就是96M,也是写入数据后慢慢变大的

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