このセクションでは、MySQL
ベンチマークスィート(および
crash-me
)の技術的記述を記載する予定ですが、この記述はまだ作成されていません。現状では、MySQL
ソースディストリビューションの
sql-bench
ディレクトリにあるコードと結果を確認することでベンチマークに関するヒントが得られます。
このベンチマークスィートは、SQL 実装のパフォーマンスを向上または低下させる操作をユーザに示すことを目的としています。
このベンチマークはシングルスレッドであるため、実行される操作の最短時間が測定されていることに注意してください。将来はこのベンチマークスィートにマルチスレッドのテストも多数追加する予定です。
下表は、Windows NT 4.0 コンピュータ上で ODBC を介していくつかのデータベースサーバにアクセスした場合のベンチマーク結果の比較を示しています。
インデックスごとに 2,000,000 レコードの読み取り | 秒 | 秒 |
mysql | 367 | 249 |
mysql_odbc | 464 | |
db2_odbc | 1206 | |
informix_odbc | 121126 | |
ms-sql_odbc | 1634 | |
oracle_odbc | 20800 | |
solid_odbc | 877 | |
sybase_odbc | 17614 |
350,768 レコードの挿入 | 秒 | 秒 |
mysql | 381 | 206 |
mysql_odbc | 619 | |
db2_odbc | 3460 | |
informix_odbc | 2692 | |
ms-sql_odbc | 4012 | |
oracle_odbc | 11291 | |
solid_odbc | 1801 | |
sybase_odbc | 4802 |
最初のテストでは、8M のインデックスキャッシュサイズで MySQL が実行されました。
これ以外にもベンチマーク結果を http://www.mysql.com/information/benchmarks.html のサイトに収集しています。
Oracle は削除の依頼があったため含まれていません。Oracle のベンチマークはすべて、Oracle から提供されます。上記のベンチマークは標準のインストールが 1 クライアントに対して実行できることを示すことを想定しているため、Oracle のベンチマークは非常に偏りがあると確信しています。
ベンチマークスィートを使用するには、以下の要件を満たす必要があります。
ベンチマークスィートは、MySQL ソースディストリビューションによって提供されるため、ソースディストリビューションが必要である。http://www.mysql.com/downloads/ のサイトからリリースされているディストリビューションをダウンロードするか、現在の開発ツリー(see 項2.3.4. 「開発ソースツリーからのインストール」)を使用できる。
ベンチマークスクリプトは Perl で作成され、データベースサーバへのアクセスには Perl DBI モジュールを使用しているため、DBI のインストールが必要である。テスト対象のサーバのそれぞれにサーバ専用の DBD ドライバも必要である。 たとえば、MySQL、PostgreSQL、DB2 をテストするには、DBD::mysql、DBD::Pg、DBD::DB2 のモジュールをインストールする必要がある。
ベンチマークスィートは、MySQL
ソースディストリビューションの
sql-bench
ディレクトリにあります。
ベンチマークテストを実行するには、ロケーションをそのディレクトリに変更し、run-all-tests
スクリプトを実行します。
shell>cd sql-bench
shell>perl run-all-tests --server=server_name
server_name
はサポートされるサーバの 1
つを表します。run-all-tests --help
を呼び出すと、すべてのオプションとサポート対象サーバの一覧を取得できます。
crash-me
では、データベースがサポートする機能と、実際のクエリを実行した場合の機能と制約の判定が試行されます。たとえば、以下についての判定が行われます。
サポートされるカラム型
サポートされるインデックス数
サポートされる関数
使用可能なクエリのサイズ
使用可能な VARCHAR
カラムのサイズ
多様なデータベースに関する
crash-me
の結果は、http://www.mysql.com/information/crash-me.php
のサイトにあります。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.