The PostgreSQL Global Development Groupは2001年4月14日,オープン・ソースのリレーショナル・データベース管理システム(RDBMS)であるPostgreSQLの新版を正式にリリースした。新版では,トランザクション処理性能を大幅に向上させた。日本PostgreSQLユーザー会会長の石井達夫氏がベータ版で実施したテストでは,旧バージョン7.0.3に比べて約7~17倍向上している(石井氏による講演資料)。性能データはTPC-Bをベースにした,スタンドアローン環境でのテストで計測した。正式版での計測データはまだないが「ベータから正式版への変更はバグ修正のみなので,速度は正式版でもほとんど変わらないと予想される」(石井氏)という。

 性能が向上したのは,内部アーキテクチャを大幅に改良したことによる。従来,トランザクションを完了してコミットする際には,更新データをすべてディスク上のデータベース・ファイルに書き込んでいた。これに対し7.1では,Write Ahead Log(WAL)と呼ぶ,OracleのREDOログに相当する機構を導入した。更新ログをディスク上のWALに書き込んだ時点でコミットとする。WALはファイル・サイズが小さいため,速く書き込みを終えることができる。これに対しデータベースでは更新すべきデータもファイル中に散らばっていることが多いため,ディスクへの書き込みに時間を要する。

 また,新たにアウター・ジョイン(外部結合)機能を備えた。インナー・ジョインでは,カラムの値が一致するレコードだけをジョインする。これに対しアウター・ジョインはカラムの値が一致しないレコードもジョインする方式である。Oracleなどの商用RDBMSではサポートしているが,PostgreSQLではサポートされていなかった。そのほか,1レコードの最大サイズが無制限になるなどの改良も行われている。

(高橋 信頼=日経オープンシステム)