CREATE INDEX
説明
テーブルに新しいインデックスを作成します。テーブル名とインデックス名を指定する必要があります。オプションで、インデックスタイプ、プロパティ、およびコメントを指定できます。
構文
CREATE INDEX [IF NOT EXISTS] <index_name>
ON <table_name> (<column_name> [, ...])
[USING {INVERTED | NGRAM_BF}]
[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}
インデックスタイプを指定します。現在、INVERTED(転置インデックス)とNGRAM_BF(ngram bloomfilterインデックス)の2種類がサポートされています。
2. PROPERTIES ("<key>" = "<value>"[ , ...])
一般的なPROPERTIES形式を使用してインデックスのパラメータを指定します。各インデックスがサポートするパラメータとセマンティクスについては、特定のインデックスタイプのドキュメントを参照してください。
3. COMMENT '<index_comment>'
メンテナンスを容易にするためにインデックスのコメントを指定します。
アクセス制御要件
このSQLコマンドを実行するユーザーは、少なくとも以下の権限を持っている必要があります:
| 権限 | オブジェクト | 注記 |
|---|---|---|
| ALTER_PRIV | Table | CREATE INDEXはテーブルのALTER操作とみなされます |
使用上の注意
- INVERTED転置インデックスは、新しく挿入されたデータに対してすぐに効果を発揮します。履歴データについては、BUILD INDEX操作を使用してインデックスを構築する必要があります。
- NGRAM_BF NGram BloomFilterインデックスは、作成後にすべてのデータに対してバックグラウンドでスキーマ変更を実行してインデックス構築を完了します。進行状況はSHOW ALTER TABLE COLUMNを使用して確認できます。
例
-
table1に転置インデックスindex1を作成するCREATE INDEX index1 ON table1(col1) USING INVERTED; -
table1上にNGram BloomFilterインデックスindex2を作成するCREATE INDEX index2 ON table1(col1) USING NGRAM_BF PROPERTIES("gram_size"="3", "bf_size"="1024");