ApsaraDB for SelectDB では、ビットマップ索引を使用することで、データベースエンジンがすべての行をスキャンする代わりにビットごとの演算でデータをフィルター処理できるようになり、クエリパフォーマンスが向上します。等価フィルター条件や範囲フィルター条件で頻繁に使用される列にビットマップ索引を使用すると、クエリ実行時に読み取られるデータ量を削減できます。
ビットマップ索引の作成
CREATE INDEX [IF NOT EXISTS] <index_name> ON <table_name> (<column>) USING BITMAP;
| パラメーター | 説明 |
|---|---|
index_name |
ビットマップ索引の名前。 |
table_name |
ビットマップ索引を作成するテーブルの名前。 |
column |
ビットマップ索引を作成する列の名前。 |
インデックス情報の表示
テーブル上のインデックスを一覧表示するには、次のコマンドを実行します:
SHOW INDEX FROM [db_name.]<table_name>;
ビットマップ索引の削除
DROP INDEX [IF EXISTS] <index_name> ON [db_name.]<table_name>;
制限事項
適用範囲
-
ビットマップ索引は単一の列にのみ適用されます。複数列のビットマップ索引はサポートされていません。
-
ビットマップ索引は、Segment V2 フォーマットで保存されたデータに対してのみ有効です。テーブルにビットマップ索引を作成すると、そのテーブルのストレージフォーマットは自動的に Segment V2 に変換されます。
サポートされるテーブルモデルと列
| テーブルモデル | サポートされる列 |
|---|---|
| Duplicate Key モデル | すべての列 |
| Unique Key モデル | すべての列 |
| Aggregate Key モデル | キー列のみ |
サポートされるデータの型
| カテゴリ | データの型 |
|---|---|
| 数値 | TINYINT、 SMALLINT、 INT、 BIGINT、 LARGEINT、 DECIMAL |
| 文字列 | CHAR、 VARCHAR |
| 日付と時刻 | DATE、 DATETIME |
| その他 | BOOL |