Stay Hungry. Stay Foolish.

2010-12-17

[] MySQL 5.5.8 GA ベンチマーク 18:52

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のまとめ投げ」が効いているのでしょうか。

MySQLmixedreadwriteupdatekey
5.1.54120.344sec9383.116sec219.577sec281.976sec26.459sec
5.5.853.374sec6110.888sec61.536sec96.021sec18.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に増えた点が大きいと思います」と指摘頂きました。有難うございました。

トラックバック - http://d.hatena.ne.jp/Takao/20101217/1292579541