Справочное руководство по MySQL версии 4.1.1-alpha


1.11.2.3 Тестирование скорости работы MySQL и PostgreSQL - часть 3


Примечание: Нам стало известно о том, что даже некоторым ключевым разработчикам PostgreSQL отнюдь не понравилось то, как фирма Great Bridge проводила свое тестирование, так что команду разработчиков PostgreSQL мы в связи с этим тестом ни в чем не обвиняем.

Упомянутый тест осуждался во многих сообщениях и телеконференциях, так что мы просто коротко перечислим его недостатки.

  • Тесты выполнялись дорогой коммерческой программой, что сделало задачу проверки их результатов невыполнимой для Open Source-компании, каковой мы являемся; мы даже не можем выяснить, как же на самом деле проводились эти тесты. Причем сама программа, даже не является специализированной утилитой для тестирования производительности - она представляет из себя универсальный инструмент для настройки и тестирования приложений. Называть ее ``стандартным'' тестом - это уж слишком большая натяжка.

  • Компания Great Bridge признала, что база данных PostgreSQL была оптимизирована (а перед проведением теста была запущена программа VACUUM) и специально настроена для проведения тестов, чего не делалось ни для одной другой СУБД, участвовавшей в тестировании. Они заявили буквально следующее: ``Этот процесс оптимизирует индексы и высвобождает немного дискового пространства. Оптимизированные индексы в некоторой степени повышают производительность.'' Проведенные нами тесты недвусмысленно свидетельствуют о том, что разница в скорости выполнения большого количества выборок (SELECT'ов) из базы данных, прошедшей чистку VACUUM, и не прошедшей ее, может быть десятикратной.

  • Результаты тестов тоже вызывают сомнения. В тестовой документации AS3AP упоминается о том, что при тестировании выполняются ``выборки, простые связи, проекции, аггрегация, обновления с одним набором значений для атрибута и массовые обновления''.

    PostgreSQL отлично выполняет операции SELECT и JOIN (особенно после VACUUM), но отнюдь не здорово справляется с INSERT или UPDATE. А результаты показывают, что выполнялись только операции SELECT (или операций обновления выполнялось очень мало). Это правдоподобно объясняет отличные результаты, показанные PostgreSQL в данном тесте. А причина, по которой MySQL показал неважные результаты, станет понятной несколько ниже.




    - Начало -  - Назад -  - Вперед -