AUTO_RANDOM的shard bits數量的best practice

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:v4.0.7
  • 【问题描述】:
    TiDB顧問 你們好,

近期在評估導入TiDB Solution,知道可以透過AUTO_RANDOM去建立不重複的UUID,在官方解釋中:

若要使用一个不同的 shard bits 的数量,可以在 AUTO_RANDOM 后面加一对括号,并在括号中指定想要的 shard bits 数量

create table t (a bigint primary key auto_random(3), b varchar(255))

想請教這個shard bits數量是否有best practice可以依循,還是就不指定即可,如下:

create table t (a bigint primary key auto_random, b varchar(255))

https://docs.pingcap.com/zh/tidb/stable/auto-random#auto_random-span-classversion-mark从-v310-版本开始引入span

Hi long,

Thanks for resolving our questions.

:handshake: 顺便说下,不指定时,默认值是 5 .

Hi long顧問,

By the way, 由於bigint型態可以指定unsigned,官方這邊會建議在create table時,加上unsigned描述嗎?
p.s. 官方網址是沒有加
[若確保不會有負數]
ex:
create table t (a bigint unsigned primary key auto_random , b varchar(255))

咨询了下,没有明确的建议,具体看业务需求。

Hi long顧問,

所以是否能理解如下:若確保此欄位數值『不會』有負值,則bigint unsigned primary key auto_random可以提供比較多『正數』auto_random範圍 [0, 18446744073709551615] ?

看起来在 4.0.3 版本后是这样
https://docs.pingcap.com/zh/tidb/stable/release-4.0.3#改进提升