スキーマ設計の考慮事項

Oracle Globally Distributed Databaseスキーマの設計は、パフォーマンスとスケーラビリティに大きく影響します。スキーマの設計が不適切な場合、データおよびワークロードがシャード間にバランスよく分散されず、マルチシャード操作の割合が大きくなります。

データ・モデルは、単一のルート表を持つ階層ツリー構造である必要があります。Oracle Globally Distributed Databaseは、階層内の任意のレベル数をサポートしています。

シャーディングの利点を活用するには、1つのシャードで処理されるデータベース・リクエストの数が最大になるように、シャード・データベースのスキーマを設計する必要があります。

シャード・データベース・スキーマは、次の特性を持つシャード表ファミリおよび重複表で構成されます。

シャード表ファミリ

  • シャーディング・キーによって等価パーティション化された一連の表。
    • 関連するデータは、常にまとめて格納および移動されます。
    • 結合および整合性制約チェックはシャード内で実行されます。
  • シャーディング方法およびキーは、アプリケーションの要件に基づいています。
  • シャーディング・キーは、主キーに含まれている必要があります。

重複表

  • すべてのシャードにレプリケートされる非シャード表。
  • 通常、共通参照データが含まれます。
  • 各シャードで読取りおよび更新できます。

シャード・データベース・スキーマの設計の計画

シャード・データーベースにデータを移入した後では、表をシャーディングするのか複製するのか、シャーディング・キーなど、スキーマの属性の多くは変更できません。したがって、シャード・データベースをデプロイする前に次の点を慎重に考慮してください。

  • どの表をシャーディングするか?

  • どの表を複製するか?

  • どのシャード表をルート表にするか?

  • 他の表をルート表にリンクするためにどの方法を使用するか?

  • どのシャーディング方法を使用するか?

  • どのシャーディング・キーを使用するか?

  • 使用するスーパー・シャーディング・キー(シャーディング方法がコンポジットである場合)