|
|
徹底比較!! PostgreSQL vs MySQL |
第5回:ベンチマーク試験による処理性能比較
著者:NTTデータ 藤塚 勤也 2006/6/6
|
|
|
前のページ 1 2 3 4 次のページ
|
|
32bit環境での結果
|
図2が32bit環境での測定結果です。縦軸がTPC値で、横軸が同時実行クライアント数です。
図2:32bit環境の測定結果
PostgreSQLとMySQL+InnoDBエンジンは、同時実行クライアント数が10あたりで最大TPS値を記録し、それ以上のクライアント数では徐々にTPS値が減少する結果となりました。
PostgreSQLの最大TPS値は「1,212TPS」で、MySQL+InnoDBエンジンは「1,385TPS」となり、InnoDBエンジンの方がPostgreSQLに比べ10%程度高い性能値が測定されました。
もう一方のMySQL+MyISAMエンジンは、同時実行クライアント数が30〜40ぐらいまでTPS値が増加し続け、最大値は「2,423TPS」でした。また、クライアント数90でも「2,340TPS」となり大きな性能劣化も計測されませんでした。「第3回:トランザクションの比較」にて解説した通り、MyISAMエンジンはトランザクション機能を持っていないため、非常に軽快な動作をすることがこの結果からわかると思います。
|
64bit環境での結果
|
図3が64bit環境の測定結果です。32bit環境の測定結果とほとんど同じ傾向であることがわかると思います。MySQL+MyISAMエンジンの性能値が圧倒的に高く、PostgreSQLとMySQL+InnoDBエンジンには10%程度の性能差が計測されました。
図3:64bit環境の測定結果
|
PostgreSQLにおける32bit環境結果と64bit環境結果の比較
|
まずはPostgreSQLです。図4がPostgreSQLの32bit環境での結果と64bit環境での結果を同一のグラフに示したものです。
図4:PostgreSQLでの32bit環境と64bit環境の比較
32bit環境では、同時実行クライアント数10の時最大TPS値になり「1,212TPS」でした。64bit環境では、同時実行クライアント数5の時最大TPS値になり「1,189TPS」でした。このように、最大TPS値を計測したクライアント数は異なるものの、32bit環境と64bit環境を比べてあまりTPS値が変わらないことがわかります。
ベンチマーク試験を実施する前は、64bit環境の方がよい性能値が計測されるだろうと考えていましたが、その考え通りの結果は得られませんでした。なぜ64bit環境の方の最大TPS値があまり高くないのでしょうか。
残念ながら、今回はあまり深く追求するに至りませんでしたが、1つだけわかったこととしては、各テーブルのファイルサイズが異なることです。表5に初期化時の各テーブルのファイルサイズを示します。
|
32bit環境 |
64bit環境 |
branche |
8,192Byte |
8,192Byte |
tellers |
16,384Byte |
16,384Byte |
accounts |
132,849,664Byte |
156,540,928Byte |
history |
0Byte |
0Byte |
表5:PostgreSQLの各テーブルのファイルサイズ
件数の多いaccountsテーブルのファイルサイズが32bit環境と64bit環境で異なっています。おそらく1ブロック当たりに格納できるレコード数が異なるのでしょう。当然、ファイルのサイズが異なれば、それを読み込むためのI/O処理に時間がかかることは明白です。
|
前のページ 1 2 3 4 次のページ
|
|
|
|
著者プロフィール
株式会社NTTデータ 藤塚 勤也
基盤システム事業本部 オープンソース開発センタ シニアスペシャリスト。
日本タンデムコンピューターズ(現日本HP)を経て、2003年よりNTTデータにてOSS分野に参画。日頃はオリジナルOSSの開発や、OSSを用いたシステム構築への技術支援に従事。「RDBMS解剖学」(翔泳社)を共著。
|
|
|
|