TOP比較データ> PostgreSQLのファイル構造

徹底比較!! Oracle & PostgreSQL


第3回:アーキテクチャ比較 ファイル構造の違い
         PostgreSQLの特徴

著者:ミラクル・リナックス  高橋 強   2004/12/16
1   2  3  次のページ
PostgreSQLのファイル構造

   次に物理構造について比較して見ましょう。まずはPostgreSQLのファイル構造を見ていきます。
PostgreSQLのファイル構造
図1: PostgreSQLのファイル構造

   図1はPostgreSQLのファイル構造を示したものです。図中、四角で示したものは論理的な構造を意味し、円柱は物理的に実在するファイルを示しています。 最初にPostgreSQLをインストールした後に、データベース領域を初期化(initdbコマンドを実行)した直後には、templete0,templete1というデータベースが作成され、基本構造が生成されます。

   ここで言う「データベース」はOracleでいうそれとは違う意味なので注意して下さい。このとき生成されるデータベース基本構造全体を指して"データベース・クラスタ"と言います。 templete0とtemplete1は文字通りユーザが作成するデータベースの雛形で、ユーザが新規にデータベースを作成した場合は、templete1がコピーされ、同じ高さに並列して作成されます。


PostgreSQLのディレクトリ構造
図2:PostgreSQLのディレクトリ構造
※ OS上の配置はインストールの仕方で変わりますが、
$PGDATA以下は基本的に同一。


   図1には示していませんが、システムカタログは$PGDATA/global/以下に作成されます。こういったデータ格納用ディレクトリ構造のトップは$PGDATAで設定したディレクトリであり、ここを頂点とするディレクトリ構造のなかに必要なファイルが配置されます。 テーブルやインデックスはサブディレクトリ以下に物理ファイルとして作成されます。この「テーブル、インデックスが物理ファイルを一対一で構成される」部分がOracleとは決定的に違う部分と言えます。

   Oracleは事前にデータ格納領域を物理ファイルとして用意(後述する表領域とデータファイルが該当します。PostgreSQLには表領域という概念が現時点ではありません。)される事が無く、オブジェクトを作成する度に、対応する物理ファイルが作成されます。 同じようにソート・データなどを一時的に書き込む一時領域やトランザクション・ログ領域も事前に確保されず、出力先のディレクトリが決まっているだけです。

   では実際のディレクトリを覗いてみます。Baseディレクトリには数字のみのディレクトリが3つ存在しています。これが、templete0,templete1と新たに作成したデータベースに対応します。次にglobalディレクトリを見ると、数字が名称として付けられたファイルが複数存在しています。これが全データベース共通のシステム・カタログです。また、baseディレクトリに作成されたデータベースに対応する数字のディレクトリ以下にもいくつかファイルが存在します。

   これらは各データベース専用のシステム・カタログとなります。PostgreSQLでは、データベース全体のシステム・カタログとデータベース単位のシステム・カタログとに分かれています。

1   2  3  次のページ


ミラクル・リナックス
著者プロフィール
ミラクル・リナックス株式会社  高橋 強
1993年某SIベンダへ入社後、Oracle、DB関連のコンサルティング、チューニング、社内案件の技術支援などを10年ほど担当。2004年ミラクル・リナックス株式会社へ入社。


INDEX
第3回:アーキテクチャ比較 ファイル構造の違い PostgreSQLの特徴
PostgreSQLのファイル構造<
  Oracleのファイル構造
  PostgreSQLの特徴