主键是字符类型的表默认 tidb_rowid能不能设置成默认auto_random

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:

【TiDB 版本】
V5.0.0 2021.03.19.1
【问题描述】
主键是字符类型的表默认 _tidb_rowid的类型是 AUTO_INCREMENT

能不能新建表的时候所有_tidb_rowid类型都设置成AUTO_RANDOM,没有没有参数能够设置成这样

1、建议看下文档,AUTO_RANDOM 特性仅支持在整数类型的列使用, 从 v4.0.3 开始, AUTO_RANDOM 列类型只能为 BIGINT 。如下:

2、AUTO_RANDOM 特性,仅支持在 Create table 时使用,与 AUTO_INCREMENT 在建表时指定类似~

https://docs.pingcap.com/zh/tidb/stable/auto-random

另外,如果主键为字符类型,那么仍然建议使用 SHARD_ROW_ID_BITSPRE_SPLIT_REGIONS 来配合打散~

字符类型如果支持AUTO_RANDOM的话性能会更好吗,后续有类似的规划吗

可以在官网 搜一下 shard_rowid_bits 参数,或者说一下,你的需求是什么?目前没太理解这个需求的目的是什么?

字符型的支持AUTO_RANDOM的话,感觉性能会下降。。。

这是为什么呢~ 不是很明白

不太理解你这边遇到的问题是什么呢?为什么希望在字符串上支持 auto_random。你是希望字符串主键能自己生成么?

不是字符串主键auto_random,是_tidb_rowid设置成auto_random

目前还没有这样做,不过可以通过设置 shard_row_id_bits 参数来实现