mysql, импортирующий 45MB sql, занимает вечность

Я пытаюсь импортировать резервную копию mysql размером около 45 МБ через phpmyadmin, но это занимает вечность. Я установил $cfg['ExecTimeLimit'] = 0 в config.default.php моей локальной установки phpmyadmin, но через два часа он все еще работает! Я действительно не могу понять, почему такая относительно небольшая резервная копия должна занимать так много времени. Есть ли способ оптимизировать процесс импорта (в php.ini my.conf) или сам файл резервной копии?


person user700119    schedule 15.09.2016    source источник
comment
Я думаю, это зависит от формата, но если вы можете сделать это прямо из командной строки в mysql, вам следует полностью избегать phpMyAdmin.   -  person jeroen    schedule 15.09.2016
comment
Командная строка — это хороший совет, но он неприменим, потому что будущие восстановления будут выполняться при онлайн-установке, а у меня нет доступа к ней из командной строки.   -  person user700119    schedule 15.09.2016


Ответы (3)


Могу поспорить, что Fedora 16 соблюдает семантику транзакций/синхронизации, а Windows — нет. Если посчитать, 600 000 обновлений за два часа — это 5 000 в минуту. Это тот же порядок величины, что и скорость вращения диска.

Вы можете попробовать добавить SET autocommit=0; в начало файла импорта и COMMIT; в конец. Дополнительные сведения см. на этой странице. Информация.

Это единственные несколько вариантов, которые я могу предложить для улучшения импорта. Кроме того, убедитесь, что вы должны увеличить значение max_allowed_packet=32M или более в файле my.cnf перед созданием файла .sql.

person FluxCoder    schedule 15.09.2016
comment
К сожалению, я на самом деле не понимаю часть Fedore 16... Я работаю локально над стеком MAMP, работающим в OS X, на Macbook Pro на основе SSD. Я пытаюсь использовать SET autocommit=0; param и попробую другие предложения по ссылке, которую вы мне прислали. Я буду держать вас в курсе с результатом. max_allowed_packet не может быть изменен, потому что резервная копия из онлайн-установки. У меня нет доступа к my.cnf этого сервера. - person user700119; 15.09.2016

попробуйте некоторое число вместо 0 в ExecTimeLimit.

person G San    schedule 15.09.2016
comment
Используйте дамп командной строки - $ mysqldump -u [uname] -p[pass] db_name › db_backup.sql - person G San; 16.09.2016

Итак, проблема, по-видимому, заключалась в конфигурации phpmyadmin, поскольку импорт из командной строки занял менее 30 секунд, как и phpmyadmin, поставляемый со стеком Xampp, который я установил сегодня днем. К сожалению, я не могу точно сказать, какая конфигурация вызвала это огромное замедление. Все равно, спасибо за помощь.

Ура Роберто

person user700119    schedule 15.09.2016