このベンチマークスィートは、SQL
実装のパフォーマンスを向上または低下させる操作をユーザに示すことを目的としています。MySQL
ソースディストリビューションの
sql-bench
ディレクトリにあるコードと結果を確認することでベンチマークに関するヒントが得られます。
このベンチマークはシングルスレッドであるため、実行される操作の最短時間が測定されていることに注意してください。将来はこのベンチマークスィートにマルチスレッドのテストも多数追加する予定です。
ベンチマークスィートを使用するには、以下の要件を満たす必要があります。
ベンチマークスィートは、MySQL ソースディストリビューションによって提供されます。http://dev.mysql.com/downloads/のサイトからリリースされているディストリビューションをダウンロードするか、現在の開発ツリーを使用できる。(詳しくは項2.9.3. 「開発ソース ツリーからのインストール」をご確認ください。)
ベンチマークスクリプトは Perl
で作成され、データベースサーバへのアクセスには
Perl DBI モジュールを使用しているため、DBI
のインストールが必要である。テスト対象のサーバのそれぞれにサーバ専用の
DBD ドライバも必要である。
たとえば、MySQL、PostgreSQL、DB2
をテストするには、DBD::mysql
、DBD::Pg
、DBD::DB2
のモジュールをインストールする必要がある。
項2.15. 「Perl のインストールに関する注釈」を参照してください。
MySQLソースディストリビューション入手後、ベンチマークスィートは、MySQL
ソースディストリビューションの
sql-bench
ディレクトリにあります。
ベンチマークテストを実行するには、ロケーションをそのディレクトリsql-bench
に変更し、run-all-tests
スクリプトを実行します。
shell>cd sql-bench
shell>perl run-all-tests --server=
server_name
server_name
はサポートされるサーバの 1
つを表します。すべてのオプションとサポート対象サーバの一覧を取得するには、このコマンドを呼び出してください。
shell> perl run-all-tests --help
sql-bench
ディレクトリ内にcrash-meがあります。
crash-meでは、データベースがサポートする機能と、実際のクエリを実行した場合の機能と制約の判定が試行されます。
たとえば、以下についての判定が行われます。
サポートされるデータ型
サポートされるインデックス数
サポートされる関数
使用可能なクエリのサイズ
使用可能な
VARCHAR
カラムのサイズ