PolarDBパーティションテーブルは、ネイティブMySQLの構文と機能と完全に互換性があります。 PolarDBパーティションテーブルは、ネイティブMySQLよりも高いパフォーマンスを提供し、より多くのパーティションタイプと組み合わせをサポートし、利便性、使いやすさ、および効率性を提供します。
パーティショニングは、パーティショニングルールに基づいて、大きな論理テーブルを複数の小さな物理テーブルに分割します。 大きな論理テーブルは区分テーブルであり、小さな物理テーブルは区分テーブルである。 各パーティションは、ストレージエンジン上のデータとインデックスを独立して編成および管理します。 パーティショニングルールには、主にRANGE、LIST、およびHASHが含まれます。 パーティションルールに基づいてデータを異なるパーティションに分散するには、パーティションキーを指定する必要があります。 PolarDBでは、ハイブリッドパーティションテーブルの作成を使用して、パーティションに異なるストレージエンジンを使用することもできます。 次の図は、サブパーティションテーブルOrdersを示しています。
メリット
幅広いパーティションタイプと組み合わせ
RANGE、LIST、HASH、およびLIST DEFAULT HASHパーティションとその組み合わせがサポートされています。 これにより、パーティションテーブルは柔軟なデータガバナンス方法を提供できます。
INTEVAL RANGEパーティションがサポートされています。 これにより、自動パーティションのメンテナンスが簡単になります。
INNODBとOSSを使用したハイブリッドパーティショニングをサポートし、コストを削減して効率を向上させています。
部分インデックスとグローバルセカンダリインデックスは、パーティションベースのHTAPトランザクションとクエリロードからのテーブルインデックスのさまざまな要件をより適切に満たすためにサポートされています。
性能の向上
パーティションプルーニング: データをクエリすると、オプティマイザはクエリ条件とパーティションメタデータに基づいてパーティションを自動的に除外し、データスキャンを削減します。 PolarDBは、クエリ効率を向上させるための動的パーティションプルーニング機能もサポートしています。
パーティションごとの結合: パーティションを結合すると、システムはパーティション条件に基づいてパーティションテーブルをパーティションの結合に分割し、条件を満たさない結合を除外して結合の数を最小限に抑え、クエリ効率を高めます。
統計の収集と管理: パーティションベースの収集と管理は正確で柔軟性があるため、より適切なクエリプランを選択できます。
並列クエリにより、パーティションベースの大きなテーブルソリューションのパフォーマンスが大幅に向上します。
強化されたデータ管理
パーティションのインデックスを作成、削除、再構築できます。
パーティションのデータをバックアップおよび復元できます。
低コスト
パーティションは、データ重要度、データストレージ性能、データストレージの信頼性、およびデータストレージ形式に基づいて格納できます。
機能の最適化
ネイティブ MySQL と比較して、PolarDB は次の表に示す最適化を提供しています。
カテゴリ | 最適化 | 参照 | |
拡張パーティション | すべてのタイプのサブパーティション | HASH および KEY パーティションのサブパーティショニング | |
RANGE および LIST サブパーティション | |||
サブパーティションのプルーニング | |||
サブパーティションに対する一部の DDL 操作 | |||
LIST DEFAULT HASH パーティション | LIST DEFAULT HASH パーティション | ||
LIST DEFAULT HASH パーティションのサブパーティショニング | |||
LIST DEFAULT サブパーティション | |||
REORGANIZE PARTITION 文を使用した、DEFAULT HASH パーティションからの LIST パーティションの分割 | |||
REORGANIZE PARTITION 文を使用した、LIST パーティションの DEFAULT HASH パーティションへのマージ | |||
REORGANIZE PARTITION 文を使用した、DEFAULT パーティション数の変更 | |||
LIST DEFAULT HASH パーティションのプルーニング | |||
ADD PARTITION 文を使用した、LIST DEFAULT HASH パーティションの追加 | |||
INTERVAL-RANGE パーティション | INTERVAL-RANGE パーティション | ||
INTERVAL-RANGE パーティションのハッシュサブパーティショニング | |||
パーティション間でプライマリキーと一意キーが一意でない可能性があるパーティション (UNIQUE CHECK IGNORE) | パーティションテーブル作成における | ||
非パーティションテーブルからパーティションテーブルへの変換における | |||
パーティション化インデックス | 部分インデックス | パーティションの部分インデックス | |
サブパーティションの部分インデックス | |||
パーティションおよびサブパーティションのインデックスの追加、削除、再構築 | |||
部分インデックスのプルーニング | |||
部分インデックスの統計情報 | |||
ハイブリッドパーティションテーブルの部分インデックス | |||
LIST DEFAULT HASH パーティションの部分インデックス | |||
グローバルセカンダリインデックス | グローバルセカンダリインデックスの作成と削除 | ||
テーブルに対する DML およびほとんどの DDL 操作におけるグローバルセカンダリインデックス | |||
DDL 操作におけるグローバルセカンダリインデックス | |||
一意のグローバルセカンダリインデックス | |||
クエリ最適化 | クエリオプティマイザ | 部分パーティションワイズ結合 | N/A |
パーティションの動的プルーニング | |||
パーティション化インデックスのプルーニング | |||
HyperLogLog | |||
パーティションテーブル内のパーティションのパラレルスキャン | |||
グローバルインデックスのオプティマイザ選択とパラレルスキャン | |||
パーティショニングと MPP の組み合わせ | |||
パーティションベースの MDL | ADD PARTITION および DROP PARTITION でのパーティションベース MDL のサポート | ||
EXCHANGE PARTITION でのパーティションベース MDL のサポート | |||
REBUILD PARTITION および REORGANIZE PARTITION でのパーティションベース MDL のサポート | |||
サブパーティションでのサブパーティションベース MDL のサポート | |||
DDL 操作 | 非パーティションテーブルおよびパーティションテーブルの DDL 操作 | 非パーティションテーブルをパーティションテーブルに変換するための DDL 操作 | |
ハイブリッドパーティション | サポートするストレージエンジンの種類 | ||