AUTO_INCREMENT
バージョン 3.0 以降、StarRocks は AUTO_INCREMENT 列属性をサポートしており、データ管理を簡素化できます。このトピックでは、AUTO_INCREMENT 列属性の適用シナリオ、使用法、および機能について紹介します。
概要
新しいデータ行がテーブルにロードされ、AUTO_INCREMENT 列の値が指定されていない場合、StarRocks はその行の AUTO_INCREMENT 列に対してテーブル全体で一意の ID として整数値を自動的に割り当てます。AUTO_INCREMENT 列の後続の値は、その行の ID から特定のステップで自動的に増加します。AUTO_INCREMENT 列はデータ管理を簡素化し、一部のクエリを高速化するために使用できます。以下は AUTO_INCREMENT 列の適用シナリオです。
- 主キーとして使用:
AUTO_INCREMENT列は主キーとして使用でき、各行に一意の ID を持たせ、データのクエリと管理を容易にします。 - テーブルのジョイン: 複数のテーブルがジョインされる場合、
AUTO_INCREMENT列をジョインキーとして使用すること で、例えば UUID のような STRING 型の列を使用するよりもクエリを高速化できます。 - 高カーディナリティ列の異なる値の数をカウント:
AUTO_INCREMENT列を辞書内の一意の値列として使用できます。異なる STRING 値を直接カウントするのに比べ、AUTO_INCREMENT列の異なる整数値をカウントすることで、クエリ速度が数倍、あるいは数十倍向上することがあります。
AUTO_INCREMENT 列を CREATE TABLE ステートメントで指定する必要があります。AUTO_INCREMENT 列のデータ型は BIGINT でなければなりません。AUTO_INCREMENT 列の値は 暗黙的に割り当てられるか、明示的に指定される ことができます。1 から始まり、新しい行ごとに 1 ずつ増加します。
基本操作
テーブル作成時に AUTO_INCREMENT 列を指定
id と number の 2 つの列を持つ test_tbl1 という名前のテーブルを作成します。number 列を AUTO_INCREMENT 列として指定します。
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");