• Showing Page History #49881
  • Showing Page History #49774

インテル コンパイラー版MySQLのパフォーマンスを見る

 データベースのベンチマーク手法には大規模なものから簡易的なものまで様々なものがあるが、今回はMySQLに付属している「sql-bench」というベンチマークツールを利用した。sql-benchはPerlで記述されたベンチマークツールで、9つのベンチマーク項目が用意されており(表1)、データベースに対してさまざまなSQLコマンドを発行してその実行時間を測定するものだ。SQLコマンドの発行はシングルスレッドで行われるので、データベースがどの程度の負荷に耐えられるかを測定する、というよりも、データベース自体の処理速度を計測する目的で利用されることが多いベンチマークである。また、SQLコマンドの種類ごとに処理にかかった時間を測定できるため、どのような処理が得意でどのような処理が苦手なのか、という傾向をつかむこともできる。

表1 sql-benchに用意されているベンチマーク項目
ベンチマーク項目説明
alter-tableテーブルに対して多数のフィールド追加/削除を行うテスト
ATIS複数のテーブルに対して多数のselect文を発行するテスト
big-tables巨大なテーブルに対してアクセスを行うテスト
connectサーバーへの接続速度を評価するテスト
createテーブル作成の速度を評価するテスト
insertテーブルへのデータのinsert速度を評価するテスト
selectselect文のパフォーマンスを評価するテスト
transactionsトランザクションの速度を計測するテスト
wisconsinWisconsinベンチマークを行うテスト。SQL文の実行速度を計測できる

 今回のベンチマークには、CPUとしてCore 2 Duo(2.33GHz)を搭載したLinuxマシンを使用した。OSにはDebian GNU/Linux 5.0を使用している(表2)。また、MySQLの設定は基本的にはデフォルトのままだが、バッファ/キャッシュサイズについては表3のように変更している。ベンチマークはそれぞれ3回ずつ実行し、その平均をベンチマーク結果とした。なお、今回のベンチマークではデータベースとしてMySQLデフォルトのMyISAMを使用しているため、トランザクションに関するベンチマークは行っていない。そのほかベンチマークの詳細な手順については、コラムを参照してほしい。

表2 ベンチマークに使用したPC環境
構成要素スペック
CPUCore 2 Duo E6550(2.33GHz)
OSDebian GNU/Linux 5.0
メモリ2GB
HDD(OS)Seagate Barracuda 7200.10(250GB)
HDD(DB)Maxtor DiamondMax Plus 9(80GB)
表3 MySQLの設定(抜粋)
設定項目
key_buffer_size860MB
table_cache512
sort_buffer_size128MB
read_buffer_size100M
read_rnd_buffer_size96MB
myisam_sort_buffer_size128MB
thread_cache_size64
query_cache_size256MB