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