README 4.07 KB
Newer Older
unknown's avatar
unknown committed
1 2
The MySQL Benchmarks

unknown's avatar
unknown committed
3
These tests require a MySQL version of at least 3.20.28 or 3.21.10.
unknown's avatar
unknown committed
4 5 6 7

Currently the following servers are supported:
MySQL 3.20 and 3.21, PostgreSQL 6.#, mSQL 2.# and Solid Server 2.2

unknown's avatar
unknown committed
8 9 10
The benchmark directory contains the query files and raw data files used to
populate the MySQL benchmark tables. In order to run the benchmarks, you
should normally execute a command such as the following:
unknown's avatar
unknown committed
11

unknown's avatar
unknown committed
12
run-all-tests --server=mysql --cmp=mysql,pg,solid --user=test --password=test --log
unknown's avatar
unknown committed
13

unknown's avatar
unknown committed
14 15 16 17
This means that you want to run the benchmarks with MySQL. The
limits should be taken from all of MySQL, PostgreSQL, and Solid.
The login name and password for connecting to the server both are
``test''.  The result should be saved as a RUN file in the output
unknown's avatar
unknown committed
18 19
directory.

unknown's avatar
unknown committed
20
When run-all-tests has finished, will have the individual results and the
unknown's avatar
unknown committed
21 22
the total RUN- file in the output directory.

unknown's avatar
unknown committed
23 24
If you want to look at some old results, use the compare-results script.
For example:
unknown's avatar
unknown committed
25 26 27 28 29 30 31

compare-results --dir=Results --cmp=mysql,pg,solid
compare-results --dir=Results --cmp=mysql,pg,solid --relative

compare-results --dir=Results --cmp=msql,mysql,pg,solid
compare-results --dir=Results --cmp=msql,mysql,pg,solid --relative

unknown's avatar
unknown committed
32
compare-results --dir=Results --server=mysql --same-server --cmp=mysql,pg,solid
unknown's avatar
unknown committed
33

unknown's avatar
unknown committed
34
Some of the files in the benchmark directory are:
unknown's avatar
unknown committed
35 36 37 38 39 40 41 42

File			Description

Data/ATIS		Contains data for 29 related tables used in the ATIS tests.
Data/Wisconsin		Contains data for the Wisconsin benchmark.
Results			Contains old benchmark results.
Makefile.am		Automake Makefile
README			This file.
unknown's avatar
unknown committed
43
test-ATIS.sh		Creation of 29 tables and a lot of selects on them.
unknown's avatar
unknown committed
44 45 46 47 48
test-connect.sh		Test how fast a connection to the server is.
test-create.sh		Test how fast a table is created.
test-insert.sh		Test create and fill of a table.
test-wisconsin.sh	This is a port of the PostgreSQL version of this
			benchmark.
unknown's avatar
unknown committed
49
run-all-tests		Use this to run all tests. When all tests are run,
unknown's avatar
unknown committed
50
			use the --log --use-old option to get a RUN-file.
unknown's avatar
unknown committed
51
compare-results		Generates a comparison table from different RUN files.
unknown's avatar
unknown committed
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
server-cfg		Contains the limit and functions for all supported
			SQL servers.  If you want to add a new server, this
			should be the only file that neads to be changed.


Most of the test should use portable SQL to make it possible to
compare different databases. Sometimes SQL extensions can make things
a lot faster. In this case the test may use the extensions if the --fast
option is used.

Useful options to all test-scripts (and run-all-tests):

--host=#	Hostname for MySQL server (default: localhost)
--db=#		Database to use (default: test)
--fast		Allow use of any non-standard SQL extension to
unknown's avatar
unknown committed
67
		get things done faster.
unknown's avatar
unknown committed
68 69
--lock-tables	Use table locking to get more speed.

unknown's avatar
unknown committed
70
From a text at http://www.mgt.ncu.edu.tw/CSIM/Paper/sixth/11.html:
unknown's avatar
unknown committed
71 72 73 74 75 76 77 78 79 80

The Wisconsin Benchmark

The Wisconsin Benchmark described in [Bitton, DeWitt, and Turbyfill
1983] [Boral and DeWitt 1984] [Bitton and Turbyfill 1985] [Bitton and
Turbyfill 1988], and [DeWitt 1993] is the first effort to
systematically measure and compare the performance of relational
database systems with database machines.  The benchmark is a
single-user and single-factor experiment using a synthetic database
and a controlled workload.  It measures the query optimization
unknown's avatar
unknown committed
81
performance of database systems with 32 query types to exercise the
unknown's avatar
unknown committed
82 83 84 85 86
components of the proposed systems.  The query suites include
selection, join, projection, aggregate, and simple update queries.

The test database consists of four generic relations.  The tenk
relation is the key table and most used. Two data types of small
unknown's avatar
unknown committed
87
integer numbers and character strings are utilized.  Data values are
unknown's avatar
unknown committed
88 89 90 91 92 93 94
uniformly distributed. The primary metric is the query elapsed
time. The main criticisms of the benchmark include the nature of
single-user workload, the simplistic database structure, and the
unrealistic query tests.  A number of efforts have been made to extend
the benchmark to incorporate the multi-user test.  However, they do
not receive the same acceptance as the original Wisconsin benchmark
except an extension work called the AS3AP benchmark.