スキーマ設計の考慮事項
Oracle Globally Distributed Databaseスキーマの設計は、パフォーマンスとスケーラビリティに大きく影響します。スキーマの設計が不適切な場合、データおよびワークロードがシャード間にバランスよく分散されず、マルチシャード操作の割合が大きくなります。
データ・モデルは、単一のルート表を持つ階層ツリー構造である必要があります。Oracle Globally Distributed Databaseは、階層内の任意のレベル数をサポートしています。
シャーディングの利点を活用するには、1つのシャードで処理されるデータベース・リクエストの数が最大になるように、シャード・データベースのスキーマを設計する必要があります。
シャード・データベース・スキーマは、次の特性を持つシャード表ファミリおよび重複表で構成されます。
シャード表ファミリ
- シャーディング・キーによって等価パーティション化された一連の表。
- 関連するデータは、常にまとめて格納および移動されます。
- 結合および整合性制約チェックはシャード内で実行されます。
- シャーディング方法およびキーは、アプリケーションの要件に基づいています。
- シャーディング・キーは、主キーに含まれている必要があります。
重複表
- すべてのシャードにレプリケートされる非シャード表。
- 通常、共通参照データが含まれます。
- 各シャードで読取りおよび更新できます。
シャード・データベース・スキーマの設計の計画
シャード・データーベースにデータを移入した後では、表をシャーディングするのか複製するのか、シャーディング・キーなど、スキーマの属性の多くは変更できません。したがって、シャード・データベースをデプロイする前に次の点を慎重に考慮してください。
-
どの表をシャーディングするか?
-
どの表を複製するか?
-
どのシャード表をルート表にするか?
-
他の表をルート表にリンクするためにどの方法を使用するか?
-
どのシャーディング方法を使用するか?
-
どのシャーディング・キーを使用するか?
-
使用するスーパー・シャーディング・キー(シャーディング方法がコンポジットである場合)