現在のところ、MySQL ABとしての公式な5.0.54のベンチマーク結果は公表されていない。しかし、コミュニティのユーザによって、5.0.41にこのパッチ(の前身)を適用した状態でのベンチマーク結果が公開されている。これはDBT-1をベースにしたベンチマークで、縦軸がスループット、横軸が負荷にあたる。これによると8CPUコアでのスループットが、高負荷時でも7割近く改善していることが分かる。また2CPUコアでは微増にとどまるが、4CPUコアでは数割程度の改善が見られる。

MySQLをはじめとする多くのオープンソース製品は、コストを下げるために安価なハードウェア上で用いられるが、最近ではその安価なハードウェアでも4 - 8CPUコアを搭載するのがあたりまえの時代になってきている。MySQLも十分に性能を引き出せるようになったと言えるだろう。

測定条件に関する補足

DBT-1とは、OSDLが公開しているオープンソースのベンチマークツールの1つである。典型的なWebアプリケーションを想定したもので、更新が少なく検索が多いということと、比較的単純なSQL文が多い(データ分析で使われるような複雑なクエリはない)という特徴がある。DBT-1のほかには、OLTP系(更新主体)を想定したDBT-2と、意志決定支援システム(複雑なSQL文が多い)を想定したDBT-3などがある。

ベンチマークを行う場合、測定条件(ハードウェア環境やデータ量、テーブル定義、実行するSQL文、同時接続数など)によって結果が大きく変わる。上記ベンチマークでは以下のように通常のDBT-1とは測定条件を若干変えて行われている。CPUを過負荷にしてスケーラビリティを測定することに主眼を置いた形だ。

  • 元のDBT-1は全文検索インデックスが無い限りフルテーブルスキャンを招いてしまう「中間一致検索」を含んでいるため、その処理を除去している。実際のアプリケーションでは、大きなテーブルに対してフルテーブルスキャンを大量のスレッドから一斉にかける、ということはあり得ないので、より現実的な条件にしている
  • ThinkTime(接続元が処理をしない時間)がゼロ
  • アプリケーションサーバを使わずに、MySQL C APIで直接接続している
  • データ量は十分メモリ内におさまる程度のものを用いている。

データ量が少なく更新も少ないため、ディスクI/Oはボトルネックになっていない。一方で、実際のアプリケーションでは、CPUよりもディスクI/Oが先に頭打ちになる場合が多い。したがって、現実的には8CPUコア以上の環境が求められるとは限らないということを補足しておこう。それでも、4CPUコア環境を含めて全体的に性能改善が実現できていることと、少なくとも8CPUまでスケールするということが確認されたので、非常に大きな改善だと言えるだろう。