データベースレキシコン — データベースに関連する用語と定義
よく使われる用語
これはよく使われる用語の包括的なリストではなく、よく混同されたり他の用語と混同されたりする用語のリストです。各セクションでは、一般的なフレーズを特定し、私たちの具体的な使用方法を定義し、問題の用語に関する外部参考情報をリストアップします。
パーティショニング
私たちの目的では、パーティショニングとは1つの大きなテーブルを多くの小さなテーブルに分割するローカルな最適化を指します。さらに、パーティショニングされたテーブルにアクセスするアプリケーションがほぼ変更を意識しないような方法で行われます。クエリがパーティショニングキーをフィルターとして使用する場合にのみ、パーティショニングの恩恵を受けられます。
定義: 「パーティショニングとは、論理的に1つの大きなテーブルをより小さな物理的なピースに分割することを指します。」参考: PostgreSQL: ドキュメント: 11: 5.10. テーブルパーティショニング
パーティショニングの実装詳細とパフォーマンスの向上について詳しく知るには、データベースチームのハンドブックエントリを参照してください: データベースパーティショニング
シャーディング
シャーディングの最も単純な定義は、データベースの一部(例: 大きなテーブル)をより小さなテーブルに分割し、それらの小さなテーブルを複数のサーバーに分散させるプロセスです。シャーディングが混乱を招く場合、特に PostgreSQL では、ほとんどのシャーディングの定義がテーブルの分割と分散の方法を説明するために パーティショニング という用語を使用しています。これにより シャーディング と パーティショニング が混同されることがあります。
私たちの目的では、シャーディング とは複数のデータベースクラスター(「シャード」)にデータを水平方向に分散させることを指します。各シャードはデータ全体のサブセットのみを含みます。
アプリケーションシャーディング
シャーディングの別の形態として アプリケーションシャーディング があります。これは通常、アプリケーションからのデータリクエストを正しいデータリポジトリにルーティングするルーティングロジックを実装するアーキテクチャを指します。シャーディングワーキンググループでの議論では、アプリケーションシャーディングの例としてShopify ポッドアーキテクチャをよく参照していました。
フォーリンデータラッパー (FDW)
フォーリンデータラッパーは、複数のデータソースからリモートデータにアクセスすることを可能にします。FDW は PostgreSQL インスタンスから多くのさまざまな種類のリソースへの統合ビューを作成するために使用できますが、私たちの目的では複数の PostgreSQL サーバーを統合することに焦点を当てています。フォーリンデータラッパー(FDW)は、PostgreSQL パーティショニングの実装を組み込みシャーディングの実装と見なされるものに変える実装の詳細です。
FDW を使ったパーティショニング = シャーディング
PostgreSQL では、パーティショニングはフォーリンデータラッパー(FDW)を使ったシャーディングへの道の最初の実装ステップです。より多くの情報と実装の詳細は、データベースチームのハンドブックエントリで確認できます: フォーリンデータラッパーとパーティショニングによる PostgreSQL 11 シャーディング
