INDEX を作成してドロップする Cassandra
Cassandra インデックスの作成
コマンド「インデックスの作成」は、ユーザーが指定した列にインデックスを作成します。インデックスを作成する列のデータがすでに存在する場合は、 Cassandra 「create Index」ステートメントの実行中にデータにインデックスを作成します。
- インデックスを作成したら、 Cassandra データが挿入されると、新しいデータに自動的にインデックスが付けられます。
- 主キーにはすでにインデックスが作成されているため、主キーにインデックスを作成できません。
- コレクションのインデックスはサポートされていません Cassandra.
- 列にインデックスを付けないと、 Cassandra 主キーでない限り、その列をフィルタリングすることはできません。
そのため、列をフィルタリングするには、 Cassandra、インデックスを作成する必要があります。
構文
Create index IndexName on KeyspaceName.TableName(ColumnName);
例:
これは、インデックスを作成せずに「dept」列をフィルタリングしようとしたスナップショットです。 応答として、エラーが返されました。
これは、dept 列にインデックスが作成されたスナップショットです。
Create index DeptIndex on University.Student(dept);
これは、「dept」列が正常にフィルタリングされたスナップショットです。
select * from University.Student where dept='CS';
Cassandra インデックスを削除
コマンド「インデックスを削除」は、指定されたインデックスを削除します。 インデックスの作成時にインデックス名が指定されなかった場合、インデックス名は TableName_ColumnName_idx になります。
- インデックスが存在しない場合は、何も行わずに返す IF EXISTS が使用されない限り、エラーが返されます。
- インデックスの作成中は、インデックス名とともにキースペース名を指定する必要があります。そうしないと、現在のキースペースからインデックスが削除されます。
構文
Drop index IF EXISTS KeyspaceName.IndexName
例:
これは、インデックス DeptIndex を削除する実行されたコマンド「Drop Index」のスナップショットです。
drop index IF EXISTS University.DeptIndex;
コマンドが正常に実行されると、DeptIndex がキースペースから削除されます。 現在、データを列部門でフィルタリングすることはできません。




