как правильно импортировать большие наборы данных в mysql?

У меня есть файл *.sql размером 400 МБ, который представляет собой дамп из базы данных MySQL. Теперь я хочу импортировать это в новую базу данных. Я использовал phpmyadmin, но он ломается через несколько минут, потому что не может обрабатывать такой большой набор данных (достигнут максимальный размер файла). Поэтому я использовал следующее:

залогинился через SSH. выбрал базу данных с помощью инструмента mysql. команда: источник mybackup.sql

Теперь запросы выполняются, но теперь они выполняются более 3 часов. Что не так или действительно так долго?

Спасибо, WorldSignia


person Community    schedule 27.08.2011    source источник
comment
Какого типа ваши столы? ИнноДБ?   -  person JJ.    schedule 27.08.2011


Ответы (2)


mysql databaseName < mybackup.sql

Это так быстро, как я думаю.

person fresskoma    schedule 27.08.2011
comment
Только прокомментируйте, что 400 МБ в коде SQL - это огромная нагрузка данных. Это должно занять время, так что не беспокойтесь об этом. - person Pedro Montoto García; 27.08.2011
comment
Спасатель, спасибо! FWIW, мне пришлось обновить эту строку max_allowed_packet = 64M в файле my.ini MySQL (я думаю, my.cnf в некоторых системах). По умолчанию он был 1M, мой файл был 3,5M, так что он мог быть 8M (вместо 64M) и все еще работать, я полагаю. - person nax3t; 19.08.2020

Если это еще не сделано, вы можете использовать set autocommit=0 для отключения автоматической фиксации перед импортом. В противном случае InnoDB будет COMMIT после каждого оператора INSERT. Это может помочь некоторым.

Вы также можете отключить вторичные уникальные ключи и внешние ключи, чтобы помочь. Смотрите эту ссылку для большего количества идей:

http://dev.mysql.com/doc/refman/5.5/en/optimizing-innodb-bulk-data-loading.html

person JJ.    schedule 27.08.2011