Сравнение

На этой странице Вы можете ознакомиться с результатами сравнительного тестирования производительности. Ранее сравнивались только PHP-скрипты, но новый Sypex Dumper 2 настолько быстрый, что мы решили включить в тестирование и десктопные приложения.

В ходе тестирования каждый участник тестирования должен был создать резервную копию тестовой БД без сжатия. Настройки по умолчанию.

Тестирование проводилось на Apache 2.2.11, MySQL 5.1.39 и PHP 5.2.11, под управлением Windows 7 x64. Параметры компьютера Core 2 Quad Q6600 @ 3 ГГц, 8 ГБ DDR2.

Раунд 1.

Для тестирования была выбрана база данных реального сайта. В процессе тестирования пришлось уменьшить количество записей, поскольку многие участники начинали слишком сильно тормозить.

Тестовая БД MySQL:

  • таблицы CMS (в том числе 20 000 новостей и 4 000 статей вместе занимающих более 60 МБ);

  • другие таблицы, включая статистику (более 18 МБ).

Всего 25 таблиц, 177 258 записей общим объемом 78 МБ, часть таблиц в cp1251, часть в utf8.

Результаты отсортированы по скорости экспорта, поскольку, экспорт делается чаще.

Программа Экспорт (сек) Импорт (сек) Размер (КБ)
Sypex Dumper 2.0.1 2 5 83 033
mysqldump 10.13* + mysqlcli 3 12 140 007
Sypex Dumper Lite 1.0.8 5 8 83 926
SQLyog Enterprize 8.14 6 12 140 018
Navicat Premium 8.2.15 7 36 148 771
phpMyAdmin 3.2.2.1 10 21 141 005
MySQL Dumper 1.24 14 87 155 449
dbForge Studio for MySQL 3.60.351.1 15 76 146 790
MySQL-Front 5.1.4.13 16 128 146 400
MySQL Administrator 1.2.17 34 18 140 398
HeidiSQL 4.0.2677 63 -** 141 232

* - mysqldump запускался с параметром --opt из php скрипта который замерял время выполнения.
** - задача не была выполнена из-за ошибки

Комментарии к результатам

Sypex Dumper единственный из участников применяет автоматическое изменение кодировки в зависимости от кодировки объектов, за счет этого он экспортирует данные без перекодировки, что экономит дополнительное время. Кроме того, используется специальный оптимизированный формат файла и умное восстановление, благодаря которому дампер минимизирует количество запросов к серверу и импортирует каждый объект в «родной» кодировке.

Многие участники не умеют работать в режиме Extended Inserts, из-за чего импорт таблиц становится в несколько раз медленнее.

Раунд 2: Битва титанов.

Основная проблема Sypex Dumper Lite 1.0.8 была в том, что он начинает тормозить на таблицах с очень большим количеством записей. Это наглядно видно в следующем тесте.

Итак, дальше мы решили провести тестирование среди лидеров на базе больших размеров. База данных та же, но до уменьшения размера для первого теста.

Те же 25 таблиц, но уже 242 321 запись общим объемом 672 МБ, часть таблиц в cp1251, часть в utf8.

Программа Экспорт (сек) Импорт (сек) Размер (КБ)
Sypex Dumper 2.0.1 12 50 706 417
mysqldump 10.13 + mysqlcli 52 90 1 251 329
SQLyog Enterprize 8.14 57 92 1 251 497
Sypex Dumper Lite 1.0.8 87 54 709 243

Комментарии по поводу mysqldump, и почему дампер работает быстрее.

  1. Естественно из-за того что дампер умнее работает с кодировками, а не перекодирует всё в UTF8 (если сделать бэкап таблиц отдельно cp1251, отдельно utf8, с указанием точной кодировки данных в настройках mysqldump, то разница будет меньше).
  2. Дампер очень сильно оптимизирован, у него нет пары десятков настроек как у mysqldump (что приводят к многочисленным лишним проверкам в процессе экспорта), дампер делает бэкап в оптимальном, с точки зрения скорости, режиме.
  3. При тестировании было замечено, что mysqldump быстрее обрабатывает таблицы с короткими записями (т. е. где средняя длина десяток или сотня байт) и таких записей сотни тысяч, в таких случаях mysqldump будет работать даже быстрее.
  4. При импорте, дампер быстрее парсит файл, так как заточен на «правильные» дампы, в то время как mysqlcli под обработку любых запросов.
  5. Тестирование проводилось на windows и вполне возможно на других системах результаты будут отличаться.

В дальнейшем еще планируется протестировать, как программы работают с новыми объектами (Представлениями, Триггерами и другими). Так как выяснилось, что даже официальный MySQL Administrator не умеет правильно бэкапить зависимые представления (т. е. если view1 использует view2, но в дампе они по алфавиту сохранены, то возникнет ошибка при импорте). Sypex Dumper 2 учитывает зависимость представлений, и в вышеприведенном примере, в дампе сначала будет view2, а потом view1.

Sypex Dumper


Sypex Geo


Новости

2024.03.01
Вышла новая версия Sypex Dumper Pro 2.4
2020.11.11

2020.05.01

2018.12.20


Статистика

Скачиваний:502 454
Яндекс.Метрика