MySQLの新バージョン5.1では、InnoDBに対して大幅な性能改善が行われています。では、バージョン5.0からどのくらい性能が向上したのでしょうか? そこで今回、IPAによって整備されたデータベースのベンチマークツールOSDL DBT-1 を使用して簡単な性能評価を行ってみました。DBT-1は、オンライン書店をシミュレートするTPC-Wをベースとした簡易版の効率測定ツールです。
測定環境は表a のとおりです。
表a 測定環境
【ソフトウェア】
MySQL 5.0 MySQL 5.0.51a
MySQL 5.1 MySQL 5.1.23-rc
OS Red Hat Enterprise Linux AS 4.0 Update6
【ハードウェア】
CPU Xeon 5160(2GHz デュアルコア) x 2
メモリ 8Gバイト
HDD 72Gバイト(内蔵ディスク。OS起動・MySQLプログラム本体) 500Gバイト(外付けディスク。MySQLログ・データ用ストレージ)
性能評価結果
DBT-1によるバージョン5.0と5.1の評価結果は、図1 のとおりです。
MySQL 5.0のInnoDBでは、仮想ユーザ数6,000程度で理論値を若干下回り、以降そのまま飽和状態に達していることがわかります。
それに対してMySQL 5.1のInnoDBでは、仮想ユーザ数が12,000を過ぎるまでDBT-1の理論値どおりのスループットを示し、以降微小ながらも上昇を続け、仮想ユーザ数16,000あたりで飽和状態(上限)に達したことが読み取れます。
図1 DBT-1のベンチマーク結果
※ MySQL 5.0の測定において、仮想ユーザ数14,000と16,000のデータを採取した際、システムのリソース限界のためDBT-1自体が途中でエラーになってしまっていました。ですので、仮想ユーザ数14,000と16,000のデータについては参考値扱いとしてご覧ください。
リソースの使用状況
CPUの利用率に関しても、MySQL 5.0はuserの利用率がスループット値と重なるようにプロットされていることがわかります。仮想ユーザ数6,000を越えるまでは急激な右肩上がりで、それ以後は伸びがない状態になります(図2 ) 。
MySQL 5.1についてもグラフはスループット値と重なるように動きますが、5.0とはうって変わって仮想ユーザ数14,000までゆるやかな右肩上がりの直線を描いており、負荷状態の推移と一致した形でグラフが描かれていることがわかると思います(図3 ) 。
図2 MySQL 5.0のInnoDBのリソース状況
図3 MySQL 5.1のInnoDBのリソース状況
まとめ
MySQL 5.1のInnoDBは、バージョン5.0に比べて格段に性能が向上していることがわかりました。もし既存のInnoDBの性能に限界を感じている方がいらっしゃいましたら、MySQL 5.1を検討してみていかがでしょうか? その性能にはみなさんも納得できるのではないかと思います。
WEB+DB PRESS Vol.45 にて、MySQL 5.1の特集が掲載されています。ぜひご覧ください。
特集2
性能向上、機能強化、そしてMySQL Cluster
詳解! MySQL 5.1
第1章 MySQL 5.1入門
バージョン5.1の全体像、ストレージエンジンの新機能、インストール
第2章 :開発者向けの新機能
XML/XPath機能、プラグインAPI、MySQL Workbench
第3章 :運用・管理者向けの新機能
行ベースレプリケーション、パーティショニング、ログテーブル……
第4章 MySQL Cluster 5.1を使ってみよう
ディスクデータストレージに対応した高可用性&高性能クラスタ
第5章 :MySQL 5.1へのアップグレード
非互換情報・変更履歴をきちんと整理