テーブルグループ(Table Group)は、データベース管理における重要な論理的概念であり、一連のテーブルを論理的にまとめて、データストレージおよびクエリ効率の管理と最適化を容易にするために使用されます。テーブルグループは物理的なストレージにおいてこれらのテーブル間の隣接関係を制御し、データへの効率的なアクセスと処理を確保するための条件を整えます。
V3.x系では、テーブルグループの設計はパーティションの概念に重点が置かれています。テーブルグループに追加されるすべてのテーブルは、そのパーティショニング方式と一致していなければなりません。この強い制約はデータの一貫性を保証しますが、テーブル管理の柔軟性に一定の制限をもたらします。V4.2.0以降では、テーブルグループの定義がさらに簡素化されました。現在では、テーブルグループにSHARDINGプロパティを定義するだけで、異なるパーティショニング方式のテーブルを同一のテーブルグループに追加できるようになり、テーブルグループ管理の柔軟性が大幅に向上しました。
テーブルグループのSHARDINGプロパティの分類
SHARDINGプロパティ値によって、テーブルグループは主に2つのカテゴリーに分類されます。それぞれSHARDING = NONEとSHARDINGがNONE以外の場合です。
SHARDING = NONEのテーブルグループ:
- このタイプのテーブルグループでは、すべてのテーブルのデータが同一マシン上に集約され、グループ内のテーブルのパーティションタイプに制限はありません。この設計は、データアクセス性能に対する要求が高く、かつテーブルの規模が比較的小さいシナリオに適しています。
SHARDINGがNONE以外のテーブルグループ:
- このタイプのテーブルグループでは、各テーブルのデータが分散され、複数のマシンに配置されます。データの均等な分散を確保するため、グループ内のすべてのテーブルでパーティション定義が一致している必要があります。これには、パーティションタイプ、数、およびパーティション値が含まれます。システムは、同一のパーティション属性を持つパーティションを同一マシン上にスケジュールすることで、効率的なPartition Wise Joinをサポートします。
SHARDINGがNONE以外のさらなる細分化
SHARDINGがNONE以外のテーブルグループは、さらに2つのタイプに細分化できます:
SHARDING = PARTITIONのテーブルグループ:
このタイプのテーブルグループでは、データはパーティション単位で分散されます。コンポジット・パーティションテーブルの場合、対応するパーティション内のすべてのコンポジット・パーティションが一緒に集約されます。すべてのテーブルのパーティション定義は同一である必要があり、これによりパーティションテーブルとコンポジット・パーティションテーブルの共存が可能になります。
パーティションの整列ルール:同一のパーティション値を持つパーティションは同一マシン上に集約されます。これには、パーティションテーブルのパーティションだけでなく、対応するパーティション内のコンポジット・パーティションも含まれます。
SHARDING = ADAPTIVEのテーブルグループ:
このタイプのテーブルグループ内のテーブルは、適応的な方法でデータが分散されます。テーブルグループ内にパーティションテーブルが含まれる場合は、パーティション単位でデータが分散されます。コンポジット・パーティションテーブルが含まれる場合は、各パーティション内のコンポジット・パーティションごとにデータが分散されます。
パーティション要件と整列ルール:テーブルグループ内のテーブルはすべて同一のパーティションタイプ(パーティションまたはコンポジット・パーティション)であり、パーティション定義が一致している必要があります。同一のパーティション値を持つパーティションは一緒に集約され、コンポジット・パーティションテーブルはパーティション値とコンポジット・パーティション値の両方が同一である条件を満たす必要があります。
関連ドキュメント
テーブルグループのプロパティや、テーブルグループの作成方法、管理方法などの詳細情報については、以下のドキュメントを参照してください: