メインコンテンツまでスキップ

CREATE INDEX

説明

テーブルに新しいインデックスを作成します。テーブル名とインデックス名を指定する必要があります。オプションで、インデックスタイプ、プロパティ、コメントを指定できます。

構文

CREATE INDEX [IF NOT EXISTS] <index_name> 
ON <table_name> (<column_name> [, ...])
[USING {INVERTED | NGRAM_BF | ANN}]
[PROPERTIES ("<key>" = "<value>"[ , ...])]
[COMMENT '<index_comment>']

必須パラメータ

1. <index_name>

インデックスの識別子(すなわち、名前)を指定します。これはテーブル内で一意である必要があります。

識別子は文字から始まる必要があります(Unicode名前サポートが有効な場合、任意の言語の任意の文字が可能)。識別子全体がバッククォートで囲まれていない限り(例:My Object)、スペースや特殊文字を含むことはできません。

識別子は予約キーワードにすることはできません。

詳細については、識別子と予約キーワードの要件を参照してください。

2. <table_name>

テーブルの識別子(すなわち、名前)を指定します。これはデータベース内で一意である必要があります。

識別子は文字から始まる必要があります(Unicode名前サポートが有効な場合、任意の言語の任意の文字が可能)。識別子全体がバッククォートで囲まれていない限り(例:My Object)、スペースや特殊文字を含むことはできません。

識別子は予約キーワードにすることはできません。

詳細については、識別子と予約キーワードの要件を参照してください。

3. <column_name> [, ...]

インデックスが作成される列を指定します(現在は1つの列のみサポート)。その列はテーブル内で一意である必要があります。

識別子は文字から始まる必要があります(Unicode名前サポートが有効な場合、任意の言語の任意の文字が可能)。識別子全体がバッククォートで囲まれていない限り(例:My Object)、スペースや特殊文字を含むことはできません。

識別子は予約キーワードにすることはできません。

詳細については、識別子と予約キーワードの要件を参照してください。

オプションパラメータ

1. USING {INVERTED | NGRAM_BF}

インデックスタイプを指定します。現在、2つのタイプがサポートされています:INVERTED(転置インデックス)とNGRAM_BF(ngram bloomfilterインデックス)。

2. PROPERTIES ("<key>" = "<value>"[ , ...])

一般的なPROPERTIES形式を使用してインデックスのパラメータを指定します。各インデックスがサポートするパラメータとセマンティクスについては、特定のインデックスタイプのドキュメントを参照してください。

3. COMMENT '<index_comment>'

メンテナンスを容易にするため、インデックスのコメントを指定します。

アクセス制御要件

このSQLコマンドを実行するユーザーは、少なくとも以下の権限を持つ必要があります:

権限オブジェクト備考
ALTER_PRIVTableCREATE INDEXはテーブルに対するALTER操作と見なされます

使用上の注意

  • INVERTED転置インデックスは新しく挿入されたデータに対して即座に有効になります。履歴データについては、BUILD INDEX操作を使用してインデックスを構築する必要があります。
  • NGRAM_BF NGram BloomFilterインデックスは作成後、すべてのデータに対してバックグラウンドでスキーマ変更を実行してインデックス構築を完了します。進行状況はSHOW ALTER TABLE COLUMNを使用して確認できます。

  • table1に転置インデックスindex1を作成する

    CREATE INDEX index1 ON table1 USING INVERTED;
  • table1にNGram BloomFilterインデックスindex2を作成する

    CREATE INDEX index2 ON table1 USING NGRAM_BF PROPERTIES("gram_size"="3", "bf_size"="1024");
  • table1embeddingベクトル列にANNインデックスindex3を作成します。

    CREATE INDEX index3 ON table1 (`embedding`) USING ANN PROPERTIES(
    "index_type"="hnsw",
    "metric_type"="l2_distance",
    "dim"="128"
    );