誰もが,データベースができるだけ高速で動くことを望む。そのために様々なテクニックを駆使してチューニングを試みる。

 チューニングの結果を確認するには,何かしらの指標が必要となる。「体感的に向上した」というのは,まったく当てにならない。正確に性能を把握してこそ,効率的なチューニングが行えるのだ。今回は,ベンチマークについて紹介する。

MySQLのベンチマーク方法

 ベンチマークには,2つの方向性がある。一つ目は,決まった処理を通じて,MySQLサーバーの処理速度を計測するものだ。これは,手順が決まっているため,それほど準備は必要ない。また,常に同じ処理を行うので,MySQLサーバーの基本的な処理能力を測るのに適している。

 2つ目は,作成したデータベースの処理スピードを計測するものだ。一つ目も重要であるが,結局は,作成したデータベースが高速で動作するかが重要である。さらに,同時アクセス数やデータ量による処理時間の変化も重要なファクターでる。

MySQLのベンチマーク機能

 MySQLそのものは,ベンチマーク機能が優れているとは言えない。データベースに対する実際の処理を行い,時間を計測するスクリプトを持っているが,参考程度と考えた方がいい。

 www.mysql.comのダウンロードページからインストールパッケージMAXをダウンロードしてインストールすると,インストールディレクトリ内にsql-benchディレクトリが生成される。sql-benchディレクトリには,様々なシチュエーションのテスト用スクリプト(Perl)が用意されている。これらを実行することによって,インストールしたMySQLサーバーの処理能力を計測することができる。

リスト1●sql-benchディレクトリ内のスクリプト

[root@localhost sql-bench]# ls
ChangeLog             graph-compare-results  test-ATIS
Comments              innotest1              test-alter-table
Data                  innotest1a             test-big-tables
README                innotest1b             test-connect
TODO                  innotest2              test-create
bench-count-distinct  innotest2a             test-insert
bench-init.pl         innotest2b             test-select
compare-results       limits                 test-transactions
copy-db               run-all-tests          test-wisconsin
crash-me              server-cfg

 MySQLのベンチマークの定番としては,MySQL AB の元社員が開発したsuper-smackがある。super-smackは,非常に優秀なベンチマークテストツールである。しかし,カスタマイズしづらいという欠点がある。

 カスタマイズし易いベンチマークツールとしてMyBenchがある。

この先は会員の登録が必要です。今なら有料会員(月額プラン)は12月末まで無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら