TOP
>
サーバ構築・運用
> PostgreSQLのデータ構造は追記型
徹底比較!! PostgreSQL vs MySQL
第6回:PostgreSQLとMySQLの特長とは
著者:
NTTデータ 藤塚 勤也
2006/6/20
前のページ
1
2
3
次のページ
PostgreSQLのデータ構造は追記型
PostgreSQLの最大の特長を1つあげるとすると、テーブルファイル内に追記型構造にてレコードを格納している点です。この追記型構造により、非常にシンプルにMVCCモデルを実現している一方、不要領域を定期的に削除するためのVACUUM処理を定期的に実行する必要があります。
更新処理(UPDATEとDELETE)が多いシステムでは、頻繁にVACUUM処理を実施しないとPostgreSQLのデータベース処理の性能劣化に繋がります。しかし、VACUUM処理自体もデータベース処理に影響を与えますので、十分な配慮が必要です。
PostgreSQLは、バージョンアップを重ねるごとにこのVACUUM処理に関して改良が施されています。今後も更なる改良に期待したいところです。
MySQLはストレージエンジンを選択できる
MySQLの最大の特長は、ストレージエンジンをテーブルごとに選択できる点です。そして、その選択したストレージエンジンによって特長が異なることです。MyISAMは、テーブル単位のファイルによるデータ構造を持ち、トランザクション機能をサポートしていません。一方のInnoDBは、テーブルスペース内に複数のテーブルやインデックスを格納するデータ構造を持ち、トランザクション機能をサポートしています。
このように、代表的な2つのストレージエンジンにおいても、まったく異なる特長を持っています。よってMySQLをシステムに適用する際には、慎重に使用するストレージエンジンを選択する必要があります。
なお、MySQLのバージョン5.0では表2のようなストレージエンジンが使用できます。
ストレージエンジン
概要
MyISAM
MySQL標準のストレージエンジンとして使用される
InnoDB
行ロックとトランザクションをサポートする
BDB
ページ単位のロックとトランザクションをサポートする
Memory
メモリ上にテーブルを配置する
Merge
複数のMyISAMテーブルを統合する
Archive
圧縮したデータベースを使用する
Federated
リモートのデータベースを参照する
NDB
クラスター構成にて使用される
CSV
データファイルにCSVを使用する
Blackhole
ダミーテーブルを使用する
表2:MySQLにて使用できるストレージエンジン
RDBMS付加機能
PostgreSQLとMySQLのRDBMS付加機能を表3にまとめました。
機能
PostgreSQL
MySQL
MyISAM
InooDB
サブクエリ
○
○
○
ストアードプロシージャ
○
○
○
ビュー
○
○
○
トリガ
○
○
○
ファンクション
○
○
○
情報スキーマ
○
○
○
日本語対応
○
○
○
表3:RDBMS付加機能
表2にあげた各機能をさらに詳細の仕様まで比較すれば様々な差異があります。しかし、各機能をサポートしているかどうかといった観点においては、PostgreSQLとMySQLに特別な差はありません。
ただし、MySQLがストアドプロシージャやトリガ機能をサポートしたのはバージョン5.0からですので、PostgreSQLに比べると若干歴史が浅いと思います。歴史が浅いということは、それらの機能の実績がPostgreSQLに比べMySQLの方が少ないということに繋がります。
前のページ
1
2
3
次のページ
著者プロフィール
株式会社NTTデータ 藤塚 勤也
基盤システム事業本部 オープンソース開発センタ シニアスペシャリスト。
日本タンデムコンピューターズ(現日本HP)を経て、2003年よりNTTデータにてOSS分野に参画。日頃はオリジナルOSSの開発や、OSSを用いたシステム構築への技術支援に従事。「RDBMS解剖学」(翔泳社)を共著。
INDEX
第6回:PostgreSQLとMySQLの特長とは
はじめに
PostgreSQLのデータ構造は追記型
性能