ここには MySQL ベンチマークスイート(と crash-me
)の
技術上の解説が書かれるはずですが、まだ書かれていません。
現在、ベンチマークのコードと結果は MySQL ソースの中の
`sql-bench' ディレクトリにあります。
(もちろん Web ページ http://www.mysql.com/information/crash-me.php にも)
このベンチマークは、なんの SQL 実装のパフォーマンスが良いのか悪いのかを、 いかなるユーザーに対しても示すベンチマークです。
Note that this benchmark is single threaded, so it measures the minimum time for the operations. We plan to in the future add a lot of multi-threaded tests to the benchmark suite.
For example, (run on the same NT 4.0 machine):
Reading 2000000 rows by indexSeconds | Seconds | |
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 |
Seconds | Seconds | |
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 |
In the above test MySQL was run with a 8M index cache.
We have gather some more benchmark results at http://www.mysql.com/information/benchmarks.html.
Note that Oracle is not included because they asked to be removed. All Oracle benchmarks have to be passed by Oracle! We believe that makes Oracle benchmarks VERY biased because the above bechmarks are supposed to show what a standard installation can do for a single client.
To run the benchmark suite, you have to download a MySQL source distribution, install the perl DBI driver, the perl DBD driver for the database you want to test and then do:
cd sql-bench perl run-all-tests --server=#
where # is one of supported servers. You can get a list of all options
and supported servers by doing run-all-tests --help
.
crash-me
は、データベースがサポートする機能、能力、制限について、
実際にクエリを走らせて確認します。
例えば、以下のような事について調べます:
VARCHAR
型はどこまで大きくできるのか
We can find the result from crash-me on a lot of different databases at http://www.mysql.com/information/crash-me.php.
Go to the first, previous, next, last section, table of contents.