これを読めば PostgreSQL の全てが分かる!PostgreSQL ガイドブック (3)
PostgreSQL の特徴
ここでは、現在の PostgreSQL が他のデータベースと比べて特徴的と思われる点を説明します。詳細は、記事「PostgreSQLの機能と他のRDBMSの比較」もご覧ください。
標準SQLへの準拠
現在の主要な RDBMS の SQL インタフェースは、ISO/IEC の標準 SQL にならった実装になっています。しかし、多くのDBMSでは、標準 SQL に準拠もしくは完全対応をうたいながらも、独自の SQL 拡張が多かったり、実用上は標準 SQL の構文よりも独自構文の方が使いやすいなどの 方言があります。 PostgreSQL も独自の方言がないわけではありませんが、安易に独自の構文を導入せず、標準 SQL に従うよう配慮されています。
並列実行性能に重点
CPU 数が増えた場合のスケーラビリティが高く、接続数が増えても性能が維持されます。追記型のデータ構造も並列実行性能を高めるための工夫の一つです。(VACUUM が面倒というトレードオフもありましたが、最近は改善されてきています。)
日本語対応
厳密には日本語だけの対応だけではなくマルチバイト対応と呼ばれていますが、日本のユーザにとっては日本語を正しく扱えるというのは大きな選択理由になります。 PostgreSQL はかなり初期のバージョンからマルチバイト対応機能が標準で取り込まれています。またその対応の早さには定評があります。最新の 8.3 では Windows Vista で採用されたことで話題の JIS X 0213(JIS2004) にいち早く対応することで完全な日本語環境を提供しています。
地理情報システム (GIS)
PostgreSQL のアドオンソフトですが、PostGIS と組み合わせて使うと 地理情報システム (GIS) のデータを PostgreSQL で格納することが可能です。これは他の RDBMS と比べても PostgreSQL の優位点であり、実際に様々な GIS システムでも PostgreSQL が使われています。
簡単に試せる手軽さ
PostgreSQL はトランザクション、ストアドプロシージャ、トリガ、ビュー、ユーザ定義関数など多彩な機能を備えながらもコンパクトなプログラムとなっています。また、少ないリソースでも稼動するように設計されていますので、本格的なデータベースを使うからといって たいそうなマシンは必要ありません。もちろん性能が追求される場合においては ハードウェアもそれなりのものを用意する必要がありますが、ちょっとテスト環境で試したいという場合でも 簡単に試せる手軽さがあります。 PostgreSQL では、プログラミング言語のインタフェースやレプリケーションなどの機能は データベース本体のプログラムには取り込まない方針です。データベース本体では最低限必要なものがインストールされ、更に必要なものは必要なものを選択してインストールするようになっています。
PostgreSQL のクラスタ
PostgreSQL は機能実装のフェーズから性能向上やレプリケーションなどを必要とする 大規模なシステムでの適用が始まっています。 PostgreSQL では、レプリケーションなどのクラスタシステムはデータベース本体には含まれておらず、別のソフトをアドオンして利用することになっています。クラスタソフトウェアには以下のような代表的なソフトウェアがあり、それぞれの機能や特徴などを踏まえて自分にあったクラスタソフトを選択するのが良いでしょう。
- pgpool-II
- PostgreSQL の開発者の一人でもある石井達夫氏が開発した pgpool を改良し、IPA のオープンソースソフトウェア活用整備基盤事業の支援を受けて開発。現在は pgpool Global Development Tema に寄贈され開発が行われている。レプリケーション、負荷分散、パラレルクエリ、コネクションプーリングなど多彩な機能の中から必要な機能を選択して利用することができる。 pgpool-II V2.0 ではオンラインリカバリと性能向上が計られ よりビジネスシステムでの適用が見込まれる。
- Slony-I
- マスタ/スレーブタイプの非同期のレプリケーションソフトウェア。海外を中心に開発されている。非同期のためスレーブノードへのレプリケーションには遅延が発生する可能性があるがリアルタイム性を求められないシステムでは、更新等の性能影響を与えないため使用しやすい。
- PGCluster
- 三谷篤氏によって開発されている マルチマスタのレプリケーションシステム。PostgreSQL のソースコードに手を入れる形で実装されている。
- PostgresForest
- NTT データが IPA のオープンソースソフトウェア活用整備基盤事業の支援を受けて開発。複数の PostgreSQL を仮想的に1つに見せ、並列分散動作をさせるソフトウェア。JDBC ドライバの拡張実装のため、利用は Java アプリケーションに限定される。
PostgreSQL の性能情報
PostgreSQL の性能情報を知りたい、もしくは自分も性能を測ってみたいという方は、 IPA が公開するサイト「OSSiPedia」が参考になるでしょう。 OSSiPedia は、OSS 関連情報のデータベース Web サイトです。OSS の利用促進を目的とし、様々な OSS の導入事例や性能情報を公開しています。 PostgreSQL 関連では、PostgreSQL 8.0 と 8.1 の性能比較、PostgreSQL 8.1 と 8.2 の性能比較、 pgpool, PGCluster などのクラスタソフトウェアの調査などが公開されています。性能測定は OSDL DBT-1 (TPC-W 相当), OSDL DBT-3 (TPC-H 相当) という OSS のベンチマークプログラムを利用して実施され測定手順も公開されています。
(2008年12月18日公開)
次回 12/30 は、 PostgreSQL の導入事例や、PostgreSQL に対応したアプリケーションのご紹介します!