Быстрый массовый импорт большого набора данных в MySQL

Быстрый массовый импорт большого набора данных в MySQL

У меня довольно большой набор данных, который мне нужно импортировать в MySQL. Я хотел бы сделать это максимально эффективно, так как мне придется делать это неоднократно. Есть ли какие-то трюки для этого? Есть ли какой-то способ, который эффективнее расширенных операторов INSERT?

Чтобы ответить на вопросы в комментарии, исходный формат — XML, хотя у меня уже есть преобразователь, чтобы преобразовать его в формат CSV. Я работаю с MySQL 5.1.x, а целевая база данных — InnoDB. Между данными есть связи, но у меня нет никаких ограничений, и в большинстве случаев данные недостаточно чистые, чтобы накладывать их.

решение1

Пытатьсяmysqlimportвы можете импортировать данные напрямую из CSV-файлов.

решение2

Я бы прочиталmysqlруководство, я думал о INSERT AFTER, но LOAD DATA INFILE выглядит интереснее "в 20 раз быстрее"...

решение3

Существует инструмент ETL с открытым исходным кодом, который называетсяИнтеграция данных Pentahoс опцией массовой загрузки mysql (в экспериментальной папке в представлении Design). Вы также можете быстро загружать данные в платформенно-независимой манере, используя их шаги ввода CSV и вывода таблицы. Если вам нужно выполнить какую-либо обработку данных перед их загрузкой, вы можете закодировать эту логику в этой программе.

решение4

Даже массовая «вставка ...» не должна занять много времени. Я взял новый экспорт базы данных JIRA размером 200 МБ и загрузил его в чистую базу данных примерно за 30 секунд.

Связанный контент