# [FAQ] TiDB 集群中每个表使用独立的 region 需要做哪些配置

## Key Words

独立 region

## Description

TiDB 集群中每个表使用独立的 region 需要做哪些配置?

## Content

每个表使用独立 region 相关的参数主要有以下三个

1.TiDB Server 参数 [split-table](https://docs.pingcap.com/zh/tidb/stable/tidb-configuration-file#split-table) 为每个 table 建立单独的 Region, 参数只能保证新 table 创建时, 会分配一个独立的 region, region merge/split 后将不受此参数控制. 默认值: true. 如果需要创建大量的表 (例如 10 万张以上), 建议将此参数设置为 false. 

2.PD 参数 [enable-cross-table-merge](https://docs.pingcap.com/zh/tidb/stable/pd-configuration-file#enable-cross-table-merge) 设置是否开启跨表 merge. 默认值：true. 主要为空 region 合并场景, true 表示多个 region (不同表的 region), 可以合并到一起为新的 region, 如果需要保留, 可以设置为 false. 但是可能会导致大量 empty region 影响性能.  设置为 true 时，region 合并后，可能出现一个 region 包含多个 table 的情况

3.TiKV 参数 [split-region-on-table](https://docs.pingcap.com/zh/tidb/stable/tikv-configuration-file#split-region-on-table) 开启按 table 分裂 Region 的开关, 建议仅在 TiDB 模式下使用. 默认值：false. 如果设置为 false 并且开启了跨表合并, 将会跨表合并空 region, 如果设置为true, 表示分裂时按照表进行分裂 regions, 可能会产生过多空 region, 并且导致空 region 不能跨表 merge.

如果可以接受带来的负面影响，可以设置参数为

```sql
split-table: true
enable-cross-table-merge: false
split-region-on-table: true
```

split-table 参数可以参考 [修改配置参数](https://docs.pingcap.com/zh/tidb/stable/maintain-tidb-using-tiup#修改配置参数) 和 [配置文件描述](https://docs.pingcap.com/zh/tidb/stable/tidb-configuration-file#split-table) 修改.

enable-cross-table-merge 和 split-region-on-table 两个修改参数的方法, 可以参考 [在线修改集群配置](https://docs.pingcap.com/zh/tidb/stable/dynamic-config#在线修改集群配置) 

```sql
set config pd `schedule.enable-cross-table-merge` = 'false'
set config tikv `coprocessor.split-region-on-table` = 'true'
```
