テーブルグループ(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のテーブルグループ:
この種のテーブルグループ内のテーブルは、適応型方式でデータが分散されます。テーブルグループ内にパーティションテーブルが含まれる場合はパーティション単位で、サブパーティションテーブルが含まれる場合は各パーティション下のサブパーティション単位で分散されます。
パーティション要件と整合性ルール:テーブルグループ内のテーブルはすべて同一のパーティションタイプ(パーティションまたはサブパーティション)である必要があり、パーティション定義も統一されている必要があります。同一のパーティション値を持つパーティションはまとめられ、サブパーティションテーブルはパーティション値とサブパーティション値の両方が同一である条件を満たす必要があります。
関連ドキュメント
テーブルグループのプロパティ、テーブルグループの作成方法、管理方法などの詳細については、以下のドキュメントを参照してください: