今度のプロジェクトのDB構成を考えていて、当初からMySQLという選択肢が頭を離れない。
これまでのプロジェクトを見ると、PostgreSQLで9割を占める。Oracleもあったけど、ライセンス高いから省略。一方、MySQLは触ったことがあるという程度。チューニングやSQL方言など、慣れないことが多いだけに、いつもその採用には二の足を踏んできた。
ただ、mixiやはてなといった大規模サイトでのMySQLの実績を横目に見て、それなりの規模のアプリケーションならMySQLを真剣に考える必要がありそう。こんだけ流行しているわけだから、ちゃんと触ってノウハウ蓄積したいという思いもあるし。
PostgreSQLに比べて、MySQLが良いなと思っているところ。
- レプリケーション機能が標準で付いている。
- Federated ストレージエンジンが使える。
日本語対応とか、スレッドとプロセスの違いとか、細かいところで違いはあるんだけど、そこはさておき。要は、スケーラビリティにおいてMySQLが優れているように思えて、気になっている。
以前は両者の性能差がもっとあったので、そんなに悩むことは無かったけど、もはやエンタープライズだからPostgreSQL、WebサービスだからMySQLっていう安易な選択もしちゃいけないんだと思う。なんなら両方が合体しちゃえば良いのに、とかトンチンカンなことを言ってしまいそうだ。
こんなわけでMySQLに後ろ髪ひかれる思いなんだけど、きっと今回はPostgreSQLになるんだろう。いまの自分の状況では、拡張性の要件を除いて、まだPostgreSQLに優位性がある。地道に検証を続けて、近いうちにMySQLで組めるようにもっていけるといいな。