Linux

2014-09-12, database_bench

MySQLのベンチマーク

エンジンはInnoDBを利用して、INSERTとUPDATEにはトランザクションを利用して全件更新後にCOMMITを実行しています。実験に使用したマシンはさくらのVPS 1Gプランです。2つのバージョンでそれぞれ実行してみました。クエリの文字列を生成している部分などのオーバヘッドを引かないと正確な値は出せないんですが、少なくとも10万件程度なら途中で落っこちてしまったり、延々と処理が終わらないというようなことは無いようです、というところまで確認できました(ちなみに100万件にすると「Killed」と一言出力して落ちます)。

$ mysql -V
mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1
$ ruby dbbench.rb 100 1000
Number of rows: 100000
Insert time: 47.112132
Update time: 52.709222
Select time: 2.924668
$ mysql -V
mysql Ver 14.14 Distrib 5.6.20, for Linux (x86_64) using EditLine wrapper
$ ruby dbbench.rb 100 1000
Number of rows: 100000
Insert time: 51.991850
Update time: 56.970440
Select time: 2.742344

5.1系の方が5.6よりも僅かに速い、という結果も出ています。チューニング次第で逆転しうるのか、という点も気になるところです。

参考URL

この記事は役に立ちましたか?