PostgreSQLと言えば、MySQLと比べられ、MySQLの方が機能は少ないにもかかわらず、シェアでは圧倒されてきたイメージがあります。
しかし、近年、PostgreSQLが大規模システムに採用される事例が増え、その人気が高まっています。
データベースが稼動した状態でバックアップを取得するオンラインバックアップや処理時間や負荷を軽減するストアドプロシージャなどの機能も標準搭載しており、オープンソースなデータベースであっても、その機能はもはや商用データベースに何ら遜色はなく、小・中規模だけでなく大規模なシステムに対しても十分に対応できるデータベースであると言えます。
PostgreSQL9.0では、いくつかの新機能追加と性能改善が盛り込まれましたが、それもより大規模なシステムでPostgreSQLを適用できるようにするためのものです。
例えば、以前までのバージョンではPostgreSQL本体にレプリケーション機能がなかったため、pgpool-II, Slony-Iといったサードパーティ製のミドルウェアと組み合わせる必要がありましたが、9.0からPostgreSQLのみで手軽にレプリケーションを実現できるようになりました。
※レプリケーションとは、データベース管理システムが持つ機能の一つで、複数のサーバーにデータベースを自動的に複製する機能のことです。
また、PostgreSQLが特に強みとする、GIS (地理情報システム)向けの機能もサードパーティの製品と組み合わせて、地図検索システムなどで豊富な利用実績を重ねています。
商用RDBMSとの比較
機能や性能は商用RDBMSに遜色ないと前述しましたが、さすがに、Oracle DatabaseやDB2には及ばないでしょう。
Oracle RACなどのクラスタリング構成にすれば、お金をかければそれだけ性能は向上してきます。
ただ、シェアの高い商用RDBMSはライセンス料がものすごく高いです。数百万とかは軽くいきますし、オプション製品も含めると、普通の感覚では逃避したい値段になります。
また、DB製品が導入されるサーバー上に搭載されているプロセッサ(CPU)の総数によってライセンス料が変わったり、製品の使用が特定の期間内に制限され、期限が切れたら、その製品の使用を停止するか、契約を延長する必要があるなど、とにかくコストがかかります。
その点、PostgreSQLはソフトウェアライセンスは無償であり、十分な機能を持ちながらも低コストで導入できます。
ただ、商用RDBMSはベンダーのサポートが受けられるというのは結構重要なポイントです。商用だろうがオープンソースであろうが、製品の問題はよく起こります。製品不具合の場合は、内容によってはすぐにパッチを提供してもらわないと困ることがあります。また、ソフトウェアの使用方法や障害時の原因究明などをベンダーから教えてもらったり、依頼することができるので、運用面における、その点のメリットは大きいです。(対応のスピードや内容に不満を持つことも多々ありますが。)
とはいうものの、PostgreSQLも商用サポートを行っている企業がありますので、そのようなサポートを利用するのもひとつの手段です。
PostgreSQLに関する情報も豊富にあり、情報収集に困ることはないでしょう。
また、日本PostgreSQLユーザー会(JPUG)というボランティア団体が公開しているWebサイト「Let’s Pogtgres」には、性能分析や性能チューニングなど有益な情報が公開されています。
MySQLとの比較
オープンソースのRDBMSとしては、PostgreSQLとMySQLがほぼデファクトスタンダードになっていると言っても過言ではないでしょう。そのせいか、PostgreSQLとMySQLはよく比較されます。
機能の多さはPostgreSQL、性能はMySQLに軍配が上がるなどと言われています。
しかし、両RDBMSともにバージョンアップによる機能改善や追加がどんどんされていますので、それらの情報もすぐに古くなってしまいます。
結局、どちらも甲乙つけがたいのが実態です。
ただ、MySQLを買収していたSunをOracleが買収したことで、MySQLの開発者が去っていったとの噂があり、PostgreSQLの方が未来は明るいと言えるのかもしれません。