PostgreSQL8.3

 あれこれしている間に、Posgreのバージョンが上がってしまいました…

▼「PostgreSQL 8.3」が正式リリース、性能は最大30%向上
http://headlines.yahoo.co.jp/hl?a=20080205-00000007-zdn_ait-sci

 性能向上は、まあおまけ程度に考えた方が良いのかもしれませんね。ちゃんとした設定をしなければ効果が得られないと思いますから。とはいえ、非同期コミットでの性能向上とのことなので、普通に(どの程度を普通というのかはアレですが)DBを操作する場合で多少パフォーマンスが良くなるんじゃないでしょうか?

 問題は…新版を入れて問題が起きないか、これにつきますね。0.0はちょっと怖い(^^;。仕事で使っている案件には当然入れられませんけど、個人の実験用鯖には入れても良いかなとも思っていたり。CakePHPで動くかどうかの人柱にもなるでしょうし。家に帰ってからちょっとやってみましょう。

 というか…今後MySQL5.1にするか、Posgreのままでいくか、良い判断材料になりそう。MySQLはもともとレプリケーション機能が標準で備わっていて、5.1になってさらに強力になりましたが、Posgreはまだ標準でありませんので、pgpool等のアプリを別途入れないといけません。おそらく8.3.xに対応されるまではかなりの時間がかかるでしょうから、現時点でのPosgreのウィークポイントかなぁ。個人で鯖1個でやる分には全く関係ないけど、ちょっとでかいDBを持ちたい場合は困るかなぁ。Oracle入れろとか言われそうだけど、低コストでそれらしいDBを使いたい場合には、やっぱりレプリケーション機能は必要かなぁ…なんて考えています。
 個人的にはPosgreは好きです。SQLが分かりやすいし、正直InnoDBとかISAMとか訳わかんないし(汗)、制約とか(テーブル名やカラム名の文字制限とか、サブクエリとか)も少ないし。でも最近ではどちらも差がないと言われていますから、考え直すちょうど良い機会かと思います。

【追記】
性能向上についてなんですが、いろいろ調べていくうちに、実は凄いんじゃないかと思えてきました。
今回の目玉はHOT(Heap Only Tuples)という機能で、更新時の無駄が大幅に軽減されるとのこと。UPDATEすると、今までは以前のデータがVACUUMするまで経路が残ってしまうのですが、8.3からUPDATEすると即経路を付け直してゴミを破棄するため、ディスク使用量が少なくなるだけでなく、無駄な経路分重かったパフォーマンスが改善される、ということらしい。ベンチマークで倍の速度向上が得られているみたいで、これは凄い! 今後更新系のDBを構築する場合は8.3系にした方が良さそうです。
それから、レプリケーションが行えるpgpoolにIIが出ていて、こちらもなかなかの性能が出ている模様。
また、開発ツールとして「ENUM」というMySQL→PostgreSQLの移行ツールなどもリリースされるようですね。
意外とPostgreSQLは今アツいのかも