このベンチマークスイートは、特定の SQL 実装のパフォーマンスが向上または低下する操作をユーザーに示すことを目的としています。MySQL ソース配布の sql-bench
ディレクトリにあるコードと結果を確認することで、ベンチマークの動作について十分に理解できます。
このベンチマークはシングルスレッドであるため、実行される操作の最短時間を測定します。将来はこのベンチマークスイートにマルチスレッドのテストも追加する予定です。
ベンチマークスイートを使用するには、次の要件を満たす必要があります。
ベンチマークスイートは、MySQL ソース配布によって提供されます。https://dev.mysql.com/downloads/ からリリース済みの配布をダウンロードするか、現在の開発ソースツリーを使用します。(セクション2.9.3「開発ソースツリーを使用して MySQL をインストールする」を参照してください。)
ベンチマークスクリプトは Perl で書かれ、データベースサーバーにアクセスするために Perl DBI モジュールを使用しているため、DBI をインストールする必要があります。さらに、テスト対象のサーバーのそれぞれにサーバー固有の DBD ドライバも必要です。たとえば、MySQL、PostgreSQL、および DB2 をテストするには、
DBD::mysql
、DBD::Pg
、DBD::DB2
のモジュールがインストールされている必要があります。セクション2.13「Perl のインストールに関する注釈」 を参照してください。
MySQL ソース配布の入手後、その sql-bench
ディレクトリにあるベンチマークスイートを見つけることができます。ベンチマークテストを実行するには、MySQL を構築し、場所を sql-bench
ディレクトリに変更し、run-all-tests
スクリプトを実行します。
shell> cd sql-bench
shell> perl run-all-tests --server=server_name
server_name
はサポートされるいずれかのサーバーの名前にするべきです。すべてのオプションとサポート対象サーバーの一覧を取得するには、このコマンドを呼び出します。
shell> perl run-all-tests --help
crash-me スクリプトも sql-bench
ディレクトリにあります。crash-me では、実際のクエリーを実行することによって、データベースシステムがサポートする機能と、その性能と制限を判断しようとします。たとえば、次を判断します。
サポートされるデータ型
サポートされるインデックス数
サポートされる関数
使用可能なクエリーの大きさ
使用可能な
VARCHAR
カラムの大きさ
ベンチマーク結果の詳細については、http://www.mysql.com/why-mysql/benchmarks/ を参照してください。