データベースレキシコン — データベースに関連する用語と定義

これはよく使われる用語の包括的なリストではなく、よく混同されたり他の用語と混同されたりする用語のリストです。各セクションでは、一般的なフレーズを特定し、私たちの具体的な使用方法を定義し、問題の用語に関する外部参考情報をリストアップします。

よく使われる用語

これはよく使われる用語の包括的なリストではなく、よく混同されたり他の用語と混同されたりする用語のリストです。各セクションでは、一般的なフレーズを特定し、私たちの具体的な使用方法を定義し、問題の用語に関する外部参考情報をリストアップします。

パーティショニング

私たちの目的では、パーティショニングとは1つの大きなテーブルを多くの小さなテーブルに分割するローカルな最適化を指します。さらに、パーティショニングされたテーブルにアクセスするアプリケーションがほぼ変更を意識しないような方法で行われます。クエリがパーティショニングキーをフィルターとして使用する場合にのみ、パーティショニングの恩恵を受けられます。

定義: 「パーティショニングとは、論理的に1つの大きなテーブルをより小さな物理的なピースに分割することを指します。」参考: PostgreSQL: ドキュメント: 11: 5.10. テーブルパーティショニング

パーティショニングの実装詳細とパフォーマンスの向上について詳しく知るには、データベースチームのハンドブックエントリを参照してください: データベースパーティショニング

シャーディング

シャーディングの最も単純な定義は、データベースの一部(例: 大きなテーブル)をより小さなテーブルに分割し、それらの小さなテーブルを複数のサーバーに分散させるプロセスです。シャーディングが混乱を招く場合、特に PostgreSQL では、ほとんどのシャーディングの定義がテーブルの分割と分散の方法を説明するために パーティショニング という用語を使用しています。これにより シャーディングパーティショニング が混同されることがあります。

私たちの目的では、シャーディング とは複数のデータベースクラスター(「シャード」)にデータを水平方向に分散させることを指します。各シャードはデータ全体のサブセットのみを含みます。

アプリケーションシャーディング

シャーディングの別の形態として アプリケーションシャーディング があります。これは通常、アプリケーションからのデータリクエストを正しいデータリポジトリにルーティングするルーティングロジックを実装するアーキテクチャを指します。シャーディングワーキンググループでの議論では、アプリケーションシャーディングの例としてShopify ポッドアーキテクチャをよく参照していました。

フォーリンデータラッパー (FDW)

フォーリンデータラッパーは、複数のデータソースからリモートデータにアクセスすることを可能にします。FDW は PostgreSQL インスタンスから多くのさまざまな種類のリソースへの統合ビューを作成するために使用できますが、私たちの目的では複数の PostgreSQL サーバーを統合することに焦点を当てています。フォーリンデータラッパー(FDW)は、PostgreSQL パーティショニングの実装を組み込みシャーディングの実装と見なされるものに変える実装の詳細です。

FDW を使ったパーティショニング = シャーディング

PostgreSQL では、パーティショニングはフォーリンデータラッパー(FDW)を使ったシャーディングへの道の最初の実装ステップです。より多くの情報と実装の詳細は、データベースチームのハンドブックエントリで確認できます: フォーリンデータラッパーとパーティショニングによる PostgreSQL 11 シャーディング