На этой странице мы решили совместить ссылки на аналогичные скрипты с результатами сравнительного тестирования их производительности. Для тестирования была выбрана база данных реального сайта (одного из наших проектов).
Тестовая БД MySQL:
- таблицы CMS (в том числе, 6 000 новостей и более 2 000 статей вместе занимающих более 30 МБ);
- таблицы форума (более 15 000 сообщений занимающих более 11 МБ);
- таблица статистики (около 400 000 записей — 17 МБ).
Всего 74 таблицы, 451 382 записей общим объемом 62 МБ.
В ходе тестирования каждый скрипт должен был создать резервную копию тестовой БД без сжатия, а также, если "умеет", со сжатием (GZip или BZip2), после чего скрипт должен был используя свои бекапы выполнить обратный процесс. Результаты замерялись трижды с помощью PHP-функции microtime(), усреднялись и округлялись до целых чисел.
Тестирование проводилось на Apache 1.3.33, MySQL 4.1.14 и PHP 4.4.2, под управлением Windows XP SP2.
| Скрипт |
Бекап (сек.) |
Восстановление (сек.) |
Размер файла (МБ) |
| SQL |
GZ |
BZ2 |
SQL |
GZ |
BZ2 |
SQL |
GZ |
BZ2 |
| Sypex Dumper Lite 1.0.7 |
25 |
32 |
58 |
43 |
44 |
54 |
72,5 |
18,4 |
14,6 |
| backupDB() 1.31 |
46 |
54 |
– |
– |
– |
– |
88,6 |
18,7 |
– |
| phpMyAdmin 2.8.0 RC1 |
55 |
57 |
84 |
169 |
173 |
× |
72,5 |
18,6 |
15,0 |
| MySQLDumper 1.21b |
56 |
67 |
– |
192 |
203 |
– |
73,8 |
19,2 |
– |
| phpMyBackupPro 1.8 |
× |
× |
– |
× |
× |
– |
× |
× |
– |
Условные обозначения
- символ "–" — означает, что данная функция отсутствует в скрипте;
- символ "×" — означает, что скрипт не смог выполнить задачу за отведенные 300 секунд или выполнил неправильно.
Комментарии к результатам
- В Sypex Dumper Lite при тестировании использовалась степень сжатия 6 (это значение по-умолчанию в PHP). Что касается результатов дампера, так тут, как говорится, без комментариев.
- backupBD() занял второе место по скорости создания дампа, но даже он отстал очень значительно, почти в 1,7 раза.
- phpMyAdmin можно было бы сказать работает "хоть и медленно, но уверенно", если бы не одно "но". Не смог восстановить свой же bz2-бекап.
- MySQLDumper не совсем корректно работает с большими Extended Inserts дампами, чтобы восстановить с его помощью БД, пришлось увеличивать в настройках MySQL максимальный размер пакета, иначе выдавалась ошибка "MySQL server has gone away".
- phpMyBackupPro за 300 секунд активной работы, заняв 80 МБ памяти, смог сохранить в файл лишь около 30% тестовой базы данных. Хотя с базами поменьше справлялся без проблем.
|