PostgreSQL vs MySQL(日経システム構築 2005/5号より)
自分はPostgresSQL派。MySQLは使ったことがない。なぜかというとテーブル型(MyISAMとかInnoDBとか)によって制限が違ったり、性能が違うと聞いていたから。それがわかりにくい。でもこの特集記事の最後にある比較表でかなり整理できた感じ。その中で自分がシステムの開発/運用をやる際気になりそうな項目を抜き出したのが下表。
PostgreSQL8.0 | MySQL4.1(MyISAM) | MySQL4.1(InnoDB) | |
トランザクション機能 | ○ | × | ○ |
外部キー | ○ | × | ○ |
ビュー | ○ | × | × |
レプリケーション機能 | 別途ツールが必要 | 標準装備(マスター/スレーブ型) | |
オンラインバックアップ | ○ | ○ | × |
ポイントインリカバリ | ○ | × | × |
こうやってみるとMyISAMは選択する価値があるのかな?しかしトランザクション機能が無いというだけで評価の範囲外だな。そりゃそれようのフレームワークを用意したりプログラマに「トランザクション機能が無いことを意識したコーディング/テストをさせる」といったことで回避できるかもしれないけれど、そのコストを考えるとそこまでして使う意味があるの?という感じ。
一方PostgreSQLはさすがpoor man's Oracleといった感じでそれなりの機能が実装されている。強いて言えばWindowsで使うのが難ありだったけど、8.0で大分解決された感じ。MySQL(InnoDB)と比較するとレプリケーション機能ね。確かに決定打というか、定番がないのかな。でもさ、負荷分散とか二重化ってOracleみたいな商用ソフトでも気を使うのに、オープンソースだったらもっと大変な気がする。だって自分で評価して導入するわけでしょ。それって、よほどそういう分野に精通してれば別だけど、自分にとってはものすごいリスク。だってフェイルオーバーに失敗したらただじゃすまないよね。そこまでミッションクリティカルなシステムならその分お金を積んでOracle RACで提案しちゃうな。