AUTO_INCREMENT
StarRocks 自 3.0 版本起支持 AUTO_INCREMENT
列属性,可以简化数据管理。本文介绍 AUTO_INCREMENT
列属性的应用场景、用法和特性。
功 能介绍
当插入一条新的记录时,StarRocks 会自动为该记录的自增列分配一个表内全局唯一的整数值作为自增 ID,并且后续值会自动增加。自增列可以简化数据管理,同时可以加速一些查询场景。以下是一些自增列的应用场景:
- 主键:自增列可用于生成主键,确保每条记录都有一个唯一的标识符,方便查询和管理数据。
- 关联表:在多个表之间进行关联时,可以使用自增列作为 Join Key,相比使用如 UUID 等字符串类型的列能够提高查询速度。
- 高基数列的精确去重计数:将自增列的 ID 值作为字典唯一值列,相比用字符串直接精确去重计数,查询速度能提升数倍甚至十数倍。
您需要在 CREATE TABLE 语句中通过 AUTO_INCREMENT
属性指定自增列。自增列的数据类型只支持 BIGINT,从 1 开始增加,自增步长为 1。 并且 StarRocks 支持隐式分配自增列的值和显式指定自增 ID。
基本用法
建表指定自增列
创建表 test_tbl1
,包含两列,分别为 id
和 number
,如下所示,建表时指定 number
列为自增列:
CREATE TABLE test_tbl1
(
id BIGINT NOT NULL,
number BIGINT NOT NULL AUTO_INCREMENT
)
PRIMARY KEY (id)
DISTRIBUTED BY HASH(id)
PROPERTIES("replicated_storage" = "true");