This benchmark suite is meant to tell any user what operations a given SQL implementation performs well or
poorly. You can get a good idea for how the benchmarks work by looking at the code and results in the
sql-bench directory in any MySQL source distribution.
Note that this benchmark is single-threaded, so it measures the minimum time for the operations performed. We plan to add multi-threaded tests to the benchmark suite in the future.
To use the benchmark suite, the following requirements must be satisfied:
The benchmark suite is provided with MySQL source distributions. You can either
download a released distribution from
The benchmark scripts are written in Perl and use the Perl DBI module to access
database servers, so DBI must be installed. You also need the server-specific DBD drivers for each of
the servers you want to test. For example, to test MySQL, PostgreSQL, and DB2, you must have the
DBD::DB2 modules installed. See Section
2.13, "Perl Installation Notes".
After you obtain a MySQL source distribution, you can find the benchmark suite located in its
sql-bench directory. To run the benchmark tests, build MySQL, and then change
location into the
sql-bench directory and execute the
perl run-all-tests --server=
server_name should be the name of one of the supported servers. To get
a list of all options and supported servers, invoke this command:
perl run-all-tests --help
The crash-me script also is located in the
directory. crash-me tries to determine what features a database
system supports and what its capabilities and limitations are by actually running queries. For example, it
What data types are supported
How many indexes are supported
What functions are supported
How big a query can be
How big a
column can be
For more information about benchmark results, visit http://www.mysql.com/why-mysql/benchmarks/.