Подтвердить что ты не робот

Почему импорт SQL настолько медленный?

У меня есть файл SQL, содержащий две таблицы с примерно 600 000 строк. Вчера я попытался импортировать файл в мою базу данных MySQL на Fedora 16, и потребовалось более 2 часов, чтобы импортировать файл. На моем ПК для Windows это заняло 7 минут. Мои машины Linux и Windows имеют точно такое же оборудование. Несколько моих знакомых тоже попробовали, и у них был аналогичный опыт.

Команда, которую мы использовали, была: mysql -u root database_name < sql_file.sql.

Почему существует такая разница в скорости?

4b9b3361

Ответ 1

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

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

Ответ 2

Почему вы не экспортируете файл .sql в качестве параметра BULK INSERT и не импортируете его, попробуйте эти параметры, беря резервную копию с помощью mysqldump

--extended-insert: использование операторов вставки нескольких строк

--quick: не выполнять буферизацию данных строки, хорошо, если таблицы большие

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