region切分

【 TiDB 使用环境】
【概述】:场景 + 问题概述

mysql> split table t1 between (1) and (100000) regions 100;
ERROR 1105 (HY000): Split table t1 region step value should more than 1000, step 999 is invalid

问题:这个步长必须大于1000吗?官方文档有介绍吗?

mysql> split table t1 between (1) and (100000) regions 50;
±-------------------±---------------------+
| TOTAL_SPLIT_REGION | SCATTER_FINISH_RATIO |
±-------------------±---------------------+
| 49 | 1 |
±-------------------±---------------------+
1 row in set (0.53 sec)

问题:split成50个region,但是结果显示是49个,这个是什么意思呢?
SCATTER_FINISH_RATIO字段表示什么意思?

谢谢。

【背景】:做过哪些操作
【现象】:业务和数据库现象
【问题】:当前遇到的问题
【业务影响】:
【TiDB 版本】:
【附件】:

2 个赞

2 个赞

怀疑是关闭了split-region-on-table

1)请问是tidb版本是多少?
2)是否开启了 split-region-on-table ?
是否关闭为每个 table 建立单独的 Region,false是关闭,即:一个region上可能有多个table的数据

登录tidb-server确认 :

show config where type='tikv' and name like '%split-region-on-table%';

pd-ctl确认:

config show

看看enable-cross-table-merge值

2 个赞

版本:4.0.6
split-region-on-table查看值是false
enable-cross-table-merge查看值是false
如上配置都没有更改过,是集群初始化后的默认值。

请问跟这两个参数有关系吗?

是的,你可以实行:

show table t1 regions

看看start_key、end_key的分布,确认下

我是在测试环境中测试的,表中就几条数据。我的疑惑点如下:
mysql> split table t1 between (1) and (100000) regions 50;
±-------------------±---------------------+
| TOTAL_SPLIT_REGION | SCATTER_FINISH_RATIO |
±-------------------±---------------------+
| 49 | 1 |
±-------------------±---------------------+
1 row in set (0.53 sec)

问题:split成50个region,但是结果显示是49个,这个是什么意思呢?

上面不已经贴图了,官网也有解释,可以搜下

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