5.1.4 Набор тестов MySQL (The MySQL Benchmark Suite)
В данном разделе будет находиться техническое описание набора эталонных
тестов MySQL (и crash-me
), но оно пока еще не написано. В настоящее время
можно получить хорошее представление об эталонном тесте, глядя на код и
результаты в каталоге `sql-bench' любого исходного дистрибутива MySQL.
Данный набор эталонных создан с целью обеспечить эталонный тест, который
будет информировать любого пользователя о том, что в данной реализации SQL
выполняется хорошо, а что плохо.
Обратите внимание: этот эталонный тест - однопоточный, так что в нем
измеряется минимальное время выполнения операций. В будущем мы планируем
добавить в данный набор большое количество многопоточных тестов.
Например (выполнено на одной машине под NT 4.0):
Чтение 2000000 строк по индексу | Секунды | Секунды
|
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 |
|
Вставка 350768 строк | Секунды | Секунды
|
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 |
|
В предыдущем тесте MySQL запускался с 8-мегабайтным индексным кэшем.
Гораздо больше результатов тестов вы сможете найти по адресу
http://www.mysql.com/information/benchmarks.html.
Обратите внимание: данные об Oracle отсутствуют - по просьбе компании
Oracle вся информация по их продукту была удалена. Все эталонные тесты для
Oracle должны быть пропущены через компанию Oracle! Мы считаем, однако,
что при таком способе тестирования результаты эталонных тестов для Oracle
будут в очень высокой степени различаться, поскольку приведенные на сайте
результаты призваны показывать на что способна стандартная инсталляция для
одного клиента.
Чтобы выполнить набор эталонных тестов, необходимо загрузить исходный
дистрибутив MySQL, установить драйвер perl DBI, драйвер perl DBD для той
базы данных, которую нужно проверить, а затем выполнить:
cd sql-bench
perl run-all-tests --server=#
где # - один из поддерживаемых серверов. Список всех опций и
поддерживаемых серверов можно получить, выполнив run-all-tests --help
.
Программа crash-me
пытается определить, какие функции поддерживаются СУБД,
и какие возможности и ограничения имеют эти функции при выполнении
запросов. Например, она определяет следующее:
- какие типы столбцов поддерживаются
- сколько индексов поддерживается
- какие функции поддерживаются
- насколько большим может быть запрос
- насколько большим может быть столбец
VARCHAR
Результат, полученные crash-me
для большого количества различных СУБД,
можно найти по адресу: http://www.mysql.com/information/crash-me.php.