【レポート】

オープンソースカンファレンス2005 - MySQL/PostgreSQL/Firebird三つ巴、今あえて語るそれぞれの不満

    鶴田展之  [2005/03/28]

    オープンソースソフトウェアのイベント「オープンソースカンファレンス2005」が、新宿の日本電子専門学校で3月25・26日の2日間に渡って開催された。会場では様々なテーマで多数のカンファレンスが開催されたが、その中でも特に興味深かったのが、「MySQL」、「PostgreSQL」、「Firebird」という3大オープンソースデータベースのユーザが一同に会した、「DB 三つ巴」と題されたセッションだ。常々ライバルとして比較されることの多い各データベースだが、これまで各データベースのユーザが集まって公の場で議論する機会は、ほとんどなかったと言って良い。それだけに一般ユーザの関心は高く、事前登録は早々に満員御礼、会場にも多くの聴衆が詰めかけた。

    パネラーとして登壇したのは、日本MySQLユーザ会の堤井泰志氏、日本PostgreSQLユーザ会の片岡裕生氏、そしてFirebird日本ユーザ会の加藤大受氏だ。まず話題は、あえてそれぞれのデータベースに対する「不満」を語ることからスタートした。

    堤井氏はMySQLに対する不満として、並行して複数のバージョンが配布されていることのわかりにくさと、現在のメインストリームである「MySQL 4.1」の日本語対応を挙げた。開発元のMySQL ABのサイトで4.0、4.1、5.0と3つのバージョンが配布されていることに加え、Linuxディストリビューションの中には未だにバージョン3.23が収録されているものがあることから、不慣れなユーザは、どのバージョンを使うべきか判断に悩むことが多い。さらに、MySQL 4.1で実装されたUnicodeベースのデータ構造と、それに付随するエンコーディングの自動変換機能には問題が多く、特に日本のユーザの間では混乱が起きているという。この問題は、各方面からの働きかけによって解決されつつあるが、MySQL 5.0のリリースまでは難しい状況が続きそうだ。

    一方、加藤氏はFirebirdの問題点として、そのアーキテクチャの古さを挙げる。Firebirdは、一時オープンソース化されたボーランドのInterBaseを起源としているが、現在もInterBase時代の古い構造から抜け出せていない部分も残っているという。たとえば、FirebirdではSQLパーサがデータベースエンジンの外に独立して実装されており、SQLによるクエリは常にGDMLという独自の形式への変換が行われる。これはSQLがまだ標準化されていなかった当時、SQL文法の変更への対応を容易にするために行われた設計であり、現在ではパフォーマンス上のボトルネックとなるデメリットの方が大きいという。SQLをネイティブにサポートする対応は、初代InterBaseアーキテクトのJim Starkey氏による「Vulcan Project」で行われているが、その成果がFirebirdに取り込まれるのは、次々期リリースの3.0を待たねばならないということだ。

    片岡氏はPostgreSQLについて、やはり速度面が第一の不満だと語る。特に、大量データをデータベースにローディングする処理は遅く、データから直接データベースファイルを生成するような専用のローダが欲しいということだ。しかし、データ型等をユーザが独自に定義できるPostgreSQLでは、汎用性をもったローダの開発も容易ではない。これも高い拡張性を持つが故の悩みと言えるだろう。

    片岡氏の話をきっかけに、話題は各データベースのパフォーマンスに移った。加藤氏の「一般的に高速であると言われるMySQLも、トランザクションをサポートする「InnoDB」ストレージエンジンを使用した場合はそれほど速くないのではないか」という問いに対し、MySQLユーザ会の村上氏から、ベンチマークツール「Super-Smack」を使った興味深いテストの結果が示された。これはInnoDB、PostgreSQL、ある商用DBで、SELECT、UPDATEを各1回、複数クライアントから並列実行するテストを行ったもので、InnoDBとPostgreSQLに関しては同様に512MBのメモリを割り当てたが、InnoDBの方が良好な結果が得られたという。この結果に対し、会場の参加者からは「実際の運用では単純な速さよりも複雑なクエリでも極端に性能が落ちないことの方が重要」「PostgreSQLやFirebirdのユーザ会でも同じテストをしてみては?」といった意見が聞かれた。

    実際、堤井氏によれば、MySQLといえど常に無条件で速いわけではなく、例えばJDBC接続時のprepare()処理などは性能が低いという。ありきたりな言葉になるが、どのデータベースのパフォーマンスが優れているということは、単純に言えるものではないということだろう。今回のオープンソースカンファレンスの別セッションではOSDLのデータベーステストツールも紹介されていたが、今後、各データベースを統一された基準で評価するテストの重要性が、ますます高まっていくことになりそうだ。

    オープンソースソフトウェアの利用が当たり前になるに従い、企業情報システムの中心を担うデータベースへのニーズも今後さらに拡大していくことが予想される。各データベースの開発者やユーザが相互に交流を持つことは、それぞれの利点や弱点を正しく認識し、お互いにより良いシステム、より良い利用技術を考える上で、非常に有益な機会になると言えるだろう。今回のセッションは1時間という非常に短い時間だったが、これをきっかけに、今後同様の議論の場が増えていくことに期待したい。

    関連記事

    関連サイト

    新着記事

    特設サイトの情報

      求人情報

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

      転職ノウハウ

      あなたの仕事適性診断

      4つの診断で、自分の適性を見つめなおそう!

      Heroes File ~挑戦者たち~

      働くこと・挑戦し続けることへの思いを綴ったインタビュー

      はじめての転職診断

      あなたにピッタリのアドバイスを読むことができます。

      転職Q&A

      転職に必要な情報が収集できます

      スカウト転職する

      企業からアプローチのメッセージが届きます。

      マイナビニュースマガジン