GNU Info

Info Node: (mysql.info)MySQL Benchmarks

(mysql.info)MySQL Benchmarks


Next: Custom Benchmarks Prev: Internal use Up: Optimize Overview
Enter node , (file) or (file)node

The MySQL Benchmark Suite
-------------------------

This should contain a technical description of the MySQL benchmark
suite (and `crash-me'), but that description is not written yet.
Currently, you can get a good idea of the benchmark by looking at the
code and results in the `sql-bench' directory in any MySQL source
distributions.

This benchmark suite is meant to be a benchmark that will tell any user
what things a given SQL implementation performs well or poorly at.

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 index* *Seconds*                                   *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          


*Inserting (350768) rows* *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 benchmarks 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' tries to determine what features a database supports and
what its capabilities and limitations are by actually running queries.
For example, it determines:

   * What column types are supported

   * How many indexes are supported

   * What functions are supported

   * How big a query can be

   * How big a `VARCHAR' column can be

We can find the result from crash-me on a lot of different databases at
`http://www.mysql.com/information/crash-me.php'.


automatically generated by info2www version 1.2.2.9