 |

|
徹底比較!! PostgreSQL vs MySQL |
第2回:データ構造の比較
著者:NTTデータ 藤塚 勤也 2006/4/18
|
|
|
1 2 3 4 次のページ
|
 |
はじめに
|
RDBMSが管理するデータには、テーブル/インデックス/トランザクションログなどの様々な種類があります。そしてRDBMSはこれらをディスクに格納することによって、データの永続性を保っています。
一口にディスク上にデータを格納するといっても、ディレクトリ構造やファイルの配置/形式/種類などと様々な構造があり、そしてこの構造はRDBMSごとに異なります。そこで今回は、PostgreSQLとMySQLそれぞれのデータベースのデータ構造ついて解説します。
|
PostgreSQLのディレクトリ構造とファイル
|
まずは、PostgreSQLのデータベースディレクトリを作成した時のディレクトリ構造を次に示します。

図1:PostgreSQLのデータベースディレクトリ
PostgreSQLでは、このデータベースディレクトリのことをデータベースクラスタと呼びます。データベースディレクトリには、設定用のファイルや起動オプション情報を格納したファイルなどが存在します。
またデータベースディレクトリには、いくつかのサブディレクトリが存在します。サブディレクトリは以下のようになっています。
- pg_xlog、pg_clog
- トランザクション関連のログファイルを格納します。
- global
- グローバルシステムカタログ用の各種テーブルファイルを格納します。グローバルシステムカタログとは、全データベース共通のデータベースを構成する要素(テーブルやインデックス)の情報などを格納するためのものです。
- base
- ユーザデータベースの各種ファイルを格納します。
表1:PostgreSQLのサブディレクトリ表
なお初期状態の「base」ディレクトリには、3つのサブディレクトリが存在します。そのうちの「1(template0データベース)」と「10792(template1データベース)」はユーザデータベースのひな形として使用され、「10793(postgresデータベース)」はユーティリティやユーザ、サードパーティ製アプリケーションのデフォルトデータベースとして使用されます。
ここでユーザが新たなデータベースの作成を行うと、PostgreSQLはそのデータベース用のサブディレクトリを作成します。さらに、この新たなデータベース内にテーブルやインデックスを作成すると、そのテーブルやインデックスのファイルはすべて新たなデータベース用のサブディレクトリ内に作成される構造になっています。
また、PostgreSQLのテーブル並びにインデックスは、すべて独立したファイルとして存在します。つまり10個のテーブルと20個のインデックスを作成すると、そのデータベース用サブディレクトリ内に30個のファイルが新たに作成されることになります。
|
1 2 3 4 次のページ
|

|
|

|
著者プロフィール
株式会社NTTデータ 藤塚 勤也
基盤システム事業本部 オープンソース開発センタ シニアスペシャリスト。
日本タンデムコンピューターズ(現日本HP)を経て、2003年よりNTTデータにてOSS分野に参画。日頃はオリジナルOSSの開発や、OSSを用いたシステム構築への技術支援に従事。「RDBMS解剖学」(翔泳社)を共著。
|
|
|
|