ZDNet Japan Brand Site:
ZDNet Japan
builder

「PostgreSQLは遅い」は本当か?:OSSデータベース比較

オープンソースソフトウェア(OSS)のデータベース管理システムであるPostgreSQL。その性能は同じOSSのMySQLよりも劣ると見られがちだ。だが、客観的な検証をしてみると、その見方は必ずしも的を射ていないようである。

田中好伸(編集部)  2007年4月12日 12時04分

 LAMPやLAPPといった言葉が示しているように、オープンソースソフトウェア(OSS)での代表的なリレーショナルデータベース管理システム(RDBMS)といえば、「MySQL」と「PostgreSQL」だ。この2つのRDBMSは同等であるかのように思われているが、しかしPostgreSQLのユーザー団体「日本PostgreSQLユーザ会」で理事長を務める片岡裕生氏によれば、「PostgreSQLはあまり信用されていない」ということがあるそうだ。

 「十分にチューニングされたMySQLとチューニングしていないPostgreSQLを比較したり、反対にチューニングされたPostgreSQLとチューニングしていないMySQLを比較したり、あるいは比較する際のハードウェアそのものが違っていたりと、MySQLとPostgreSQLの性能比較は、客観的に行われていない」(片岡氏)

 そのように感じていた同氏は、客観的にデータベースの性能を調べたいという個人の集まりである「データベース性能検証会」の中で、MySQLとPostgreSQLをベンチマークを続けてきている。そのベンチマークの一部が、3月に沖縄で開催された「日本PostgreSQLユーザ会沖縄セミナー」の同氏の講演の中で紹介されている。

 なお、データベース性能検証会には、日本PostgreSQLユーザ会、MySQLのユーザー団体「日本MySQLユーザ会」のそれぞれに所属するメンバー両方が参加している。

単体テストからシナリオテストへ

 講演で紹介されたベンチマークは大きく分けて(1)ストアドプロシージャを使った単体テスト、(2)1サーバ1クライアントによるテスト、(3)1サーバ多クライアントでのテスト、(4)複雑なシナリオを利用したテスト、(5)接続してから最初のクエリが投げられるまでを計測する接続コスト――という5つからなる。

片岡裕生氏 日本PostgreSQLユーザ会理事長の片岡裕生氏

 単体テストからシナリオへと、段々と複雑なものにするという方針について、同氏は「PostgreSQLとMySQL、強いところと弱いところ、それぞれの違いを見ていこう」という狙いを説明している。

 まず、ストアドプロシージャを利用した単体テストでは、INSERT、SELECT、UPDATE、DELETEの4つで行われており、4つとも、所定のレコード数の処理にかかった時間による計測が行われている。テストに用いられたデータは、1レコード64バイトを8つのカラムに分けた「64_8」、1レコード1kバイト(1024バイト)を128カラムに分けた「1024_128」、1レコード1024バイトを8カラムに分けた「1024_8」の3つ。レコード数はそれぞれ10万レコード。

 単体テストのINSERTの場合、「全体的にPostgreSQLの所要時間が長い」(同氏)という結果になっている。特に1024_128では、PostgreSQLはMySQLの約2倍の差がついている。この結果について同氏は「カラム数が多いとPostgreSQLが遅い」と分析している。というのは、「カラム数が少ないものでは、逆にPostgreSQLがMySQLよりも1.5倍より速いという結果が出ている」からだ。ちなみに同氏によれば、PostgreSQLのカラム数が多くなると処理が遅くなるという性能については「最新版である8.2で改善されている」という。

キーショートカット:  b - 前のページ n - 次のページ
http://japan.zdnet.com/news/db/story/0,2000056180,20346959,00.htm
「PostgreSQLは遅い」は本当か?:OSSデータベース比較

ZDNet Japan Essential Topic

ZDNet Japanからのお知らせ

Intel Video Series

sponsored by Intel

ZDNet Japan ニューズレター

企業情報システムの選択、導入、運用管理に役立つ情報を毎朝メール配信します。

ニューズレターの登録・登録情報変更 »