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