機能説明
パーティションテーブルに対するグローバルセカンダリインデックスの作成をサポートします。
サポートバージョン
カーネルバージョン TXSQL 8.0 3.1.15 以降。
適用シーン
パーティションテーブルでグローバルセカンダリインデックスを作成することで、パーティションテーブルのクエリ効率とパフォーマンスを向上させます。
注意事項
DDLの使用制限(以下は、公式ドキュメントのpartition_optionでサポートされていないDDL操作です)。 DISCARD PARTITIONとIMPORT PARTITION:グローバルインデックスとパーティションが同じテーブルスペースにないためです。
COALESCE PARTITION:主キーがないテーブルでこの操作を実行すると、グローバルインデックスに重複レコードが発生します。
REORGANIZE PARTITION:グローバルインデックスに重複データが発生する可能性があります。
EXCHANGE PARTITION:グローバルインデックスとパーティションが同じテーブルスペースにないため、グローバルインデックスはデータを交換できません。
REBUILD PARTITION:主キーがないパーティションテーブルでは重複レコードが発生する可能性があります。
REPAIR PARTITION:グローバルインデックスのデータが失われる可能性があります。
グローバルインデックスは主キーインデックスとして使用できず、暗黙的な変換を含む場合も同様です(主キーがない場合、ユニークなグローバルインデックスは作成できません)。
ユニークなグローバルインデックスはすべてのパーティションフィールドを含む必要があります。
グローバルインデックスは、データコピーを必要とするパーティションレベルのDDLをまだサポートしていません。
グローバルインデックスは圧縮テーブル(KEY_BLOCK_SIZEの変更)及び透過的ページ圧縮をサポートしていません。
グローバルインデックスは非パーティションテーブルをサポートしていません。非パーティションテーブルにグローバルインデックスを作成すると、自動的に通常インデックスに変換されます。
グローバルインデックスを含むハッシュパーティションは、add操作やcoalesce操作をサポートしていません。
グローバルインデックスを含むパーティションテーブルでパーティションをtruncateする場合は、alter table truncate partition with global indexの構文を使用する必要があります。
グローバルインデックスのAHIはデフォルトで無効化されています。
グローバルインデックスへのアクセスにはsimple select方式の使用を推奨し、特殊な使い方はお勧めしません。
使用説明
グローバルインデックステーブルを作成する
create table t1 (
a bigint unsigned not null PRIMARY KEY,
b varchar(16) not null,
pad varchar(128) not null,
key key_b(b) global -- globalキーワードを追加し、テーブル作成時にグローバルインデックスを指定します。
)
PARTITION BY RANGE(a) (
PARTITION p0 VALUES LESS THAN (10000000),
PARTITION p1 VALUES LESS THAN (20000000),
PARTITION p2 VALUES LESS THAN (30000000),
PARTITION p3 VALUES LESS THAN (MAXVALUE)
);
既存のテーブル上にグローバルインデックスを作成する
create index key_b on t1(b) global; -- globalキーワードを追加し、インデックス作成時にグローバルインデックスを指定します。
alter table t1 add index key_b(b) global;