MySQL 5.5.8 GA ベンチマーク

MySQL 5.5の正式版がリリースされたようです。

次の記事で「Linux環境では読み出し/書き込みが360%、読み出しのみが200%だった。」とあったのでmysqlslapを動かしてみま した。

今回、MySQL 5.5.8とMySQL 5.1.54を比較してみました。

実行環境

さくらのVPS の標準構成で yum update を実行済みです。

# cat /etc/redhat-release
CentOS release 5.5 (Final)
# uname -a
Linux wwwxxxxu.sakura.ne.jp 2.6.18-194.8.1.el5 #1 SMP Thu Jul 1 19:04:48 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

MySQL

rpmでインストールし両バージョンともmy-large.cnfの設定を利用しました。

mysqlslapオプション

# mysqlslap --auto-generate-sql --auto-generate-sql-guid-primary\
   --engine=innodb --number-int-cols=10 --number-char-cols=10\
   --concurrency=20 --auto-generate-sql-write-number=10000\
   --auto-generate-sql-execute-number=10000\
   --auto-generate-sql-load-type=アクセスパターン -p
アクセスパターン 内容
mixed 挿入とスキャンを半々ずつ
read テーブルのスキャン
write テーブルへの挿入
update 主キーの更新
key 主キーの読み取り

実行結果(Average)

記事通り全体的に性能向上が見えます。
特にwriteが早くなっているようです。
これは「非同期IOのまとめ投げ」が効いているのでしょうか。

MySQL mixed read write update key
5.1.54 120.344sec 9383.116sec 219.577sec 281.976sec 26.459sec
5.5.8 53.374sec 6110.888sec 61.536sec 96.021sec 18.858sec
何倍 2.254倍 1.535倍 3.568倍 2.936倍 1.403倍

重要:2010/12/20訂正

上記ベンチマークでは5.5.8でスピードが圧倒的に速くなっているように見えますが
InnoDB関係のパラメータデフォルト値が変更になっているだけでした。

  • innodb_buffer_pool_size:8388608(8MB)=>134217728(128MB)
  • innodb_additional_mem_pool_size:1048576(1MB)=>8388608(8MB)
  • innodb_log_buffer_size:1048576(1MB)=>8388608(8MB)

今晩にでもパラメーター合わせた後のベンチマーク結果をアップします。

この点についてSH2さんからのブクマコメントで「my-large.cnfはMyISAM用の設定ファイルで、InnoDBの設定は書いてありません。このケースでは5.1⇒5.5でinnodb_buffer_pool_sizeのデフォルト値が8MBから128MBに増えた点が大きいと思います」と指摘頂きました。有難うございました。