TiDB分布式版本的分布健如何选择呢?

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
TiDB分布式版本的分布健如何选择呢?

【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】

tidb 不需要选择分布式键吧。

除非遇到热点问题这种需要考虑打散一下。

1 个赞

分片键?
优先选择那些唯一性高的字段作为分片键,如用户ID、订单号等。这些字段能够确保数据在分布式环境中被均匀分布。如果单个字段无法满足需求,可以考虑使用复合分片键。

tidb不需要吧,tdsql的分布式才有这个分片键的问题

tidb不需要分布键,由tidb自己分。
你要是想要求一个指定的表存几个副本,存哪个服务器上,可以使用placement rule功能

pg(以及哪些在pg的代码上二次开发的国产分布式数据库)才需要考虑分片键,tidb不需要

TiDB 不需要选分键,而且 TiDB 是只有分布式版本

大佬,请问如果顺序自增的话不会造成写热点吗

一般不用

聚簇表的key(RowID)都是tablePrefix{ TablelD }_recordPrefixSep{ Col1 },所以如果用的是聚簇表,同时主键是int型且是自增的,会产生写热点,字符型的就不会。而非聚簇表的话,他的key都是tablePrefix { TablelD }_recordPrefixSep{ _Tidb_RowlD },就是key都是由_Tidb_RowlD(只有非聚簇表才会自动生成)这个拼接出来的,由于_Tidb_RowlD自动生成也是自增int型,默认都会产生写热点。但是非聚簇表可以使用SHARD_ROW_ID_BITS相关参数来进行打散,从而缓解写热点问题。
如果你又想要主键自增又不想产生热点,可以建表时指定使用主键自增(自增缓存设置为1)且是非聚簇索引,同时shard分片,然后预先切片就能达到你要的效果。

建表语句如下:

set tidb_scatter_region=‘ON’;
CREATE TABLE t_autoincre_noclus_sd (a BIGINT PRIMARY KEY NONCLUSTERED AUTO_INCREMENT, b VARCHAR(255)) SHARD_ROW_ID_BITS = 4 pre_split_regions=4 AUTO_ID_CACHE 1;

你这是深受MongoDB分片的害啊 啊哈哈哈

不是分库分表的模式

没听说过tidb创建表的时候要分布键。 群集通过region分布的。
有分区表,分区表有 Range分区和 hash分区两种形式。