# Главная
# О библиотеке

# Выбор дистрибутива
преимущества Linux/UNIX | основные дистрибутивы | серверный Linux | BSD | LiveCDs | прочее

# Установка и удаление программ
общие вопросы | каталоги софта | специальные случаи

# Настройка и работа
установка, загрузчики | настройка Linux | консоль | файловые системы | процессы | шеллы, русификация, коммандеры | виртуальные машины, эмуляторы

# X Window и оконные менеджеры
настройка X Window | GNOME | KDE | IceWM и др.

# Работа с текстами
редакторы | офис | шрифты, кодировки и русификация | преобразования текстовых файлов | LaTeX, SGML и др. | словари

# Графика
GIMP | фото | обработка изображений | форматы графических файлов

# Сети, администрирование
общие вопросы | Dialup & PPP | брандмауэры | маршрутизация | работа в Windows-сетях | веб-серверы | Apache | прокси-серверы | сетевая печать | прочее

# Программирование
GCC & GNU make | программирование в UNIX | графические библиотеки | Tcl | Perl | PHP | Java & C# | СУБД | CVS | прочее

# Ядро
# Мультимедиа
# Интернет
# Почта
# Безопасность
# Железо
# Разное

# Linux HowTo (как сделать)
# Книги и руководства
# Материалы на английском языке


MySQL The World's Most Popular Open Source Database # Online shop | Site map |  
CompanyProductsSupport & ConsultingTraining & CertificationDownloadsDocumentation
  BooksArticlesMailing ListsPresentationsOther Sites  
Search the MySQL manual:
MySQL Manual
  • 5 Оптимизация в MySQL
    • 5.1 Oбзор оптимизации
      • 5.1.1 Конструктивные ограничения MySQL/компромиссы
      • 5.1.2 Вопросы переносимости
      • 5.1.3 Для чего мы использовали MySQL?
      • 5.1.4 Набор тестов MySQL (The MySQL Benchmark Suite)
      • 5.1.5 Использование собственных тестов

Buy this Reference Manual in softcover from Barnes & Noble!

MySQL Reference Manual
Previous / Next / Up / Table of Contents

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.

User Comments

Posted by Matt Walsh on Wednesday December 18 2002, @5:28pm[Delete] [Edit]

I had trouble with this.

0) Couldn't get the MySQL-bench-3.23.51-1.rpm to
install as it complains about MySQL-DBI-perl-bin.
But I'm sure I have that installed from the default
redhat 7.2 install as I can do queries from Perl all day
long. Sigh. So instead I worked off the source
distrubution.
1) The scripts end in .sh. The instructions and
readme assume they don't
2) The automake won't run since there is no
configure.in. Not sure what I need automake for,
anyway...
3) At least on my (linux) system, the @PERL@
statement at the top didn't work. I strongly suspect
my Perl inexperience is to blame and that there's a
smart way to fix this, but I went ahead and had to
replace all occurences with #!/usr/bin/perl (which
obviously won't work for everybody depending on
perl's location)
4) Even with all this, the run-all-tests script did
nothing and said everything was ok. I could run all
the tests individually, though.
5) The instruction might helpfully mention that
you
need a 'test' database. I had deleted mine. Or
better yet, the script could create the database if it
doesn't exist.

I documented my experience <A
HREF="http://www.mattwalsh.com/twiki/bin/view/M
ain/HowToRunTheMysqlBenchmarks">on my site
here:</A>

Posted by Djun Kim on Monday October 28 2002, @11:52pm[Delete] [Edit]

Problem 0) reported by Matt (regarding MySQL-bench
not installing from the RPM) persists through version
3.23.53a-1. The problem seems to be that
the MySQL-DBI-perl-bin package required by
MySQL-bench is actually called Mysql-DBI-perl-bin
(case matters)

Workaround: repackage Mysql-DBI-perl-bin as
MySQL-DBI-perl-bin. ALternatively, you can
do a search and replace on Mysql-DBI-perl-bin.rpm
and replace all instances of Mysql-DBI with MySQL-DBI.

Djun

Add your own comment.

Top / Previous / Next / Up / Table of Contents
# MySQL.com home | Site map | Contact us | Press | Jobs | Privacy policy | Trademark info | © 1995-2003 MySQL AB. All rights reserved.