преобразование массивной расширенной вставки в простую вставку для MySQL - PullRequest
2 голосов
/ 20 апреля 2011

Длинная история из моих выходных с экземпляром EC2. Сброс данных, которые я там скопировал, в файл дампа 685 МБ для переноса на мой сервер. Рано утром, поэтому не обнаружил, что у меня была опция для расширенной вставки. У меня нет доступа к массируемым данным во временной базе данных, так как я решил, что был залит файлом дампа.

Так что теперь у меня есть этот дамп-файл, который включает в себя таблицу с одной расширенной вставкой с 17 миллионами строк. MySQL на моем сервере захлебнулся.

Я нашел Perl-скрипт с именем mysqdump-convert.pl , который преобразует расширенные вставки в простые. Я передал его вывод в новый файл, но он, кажется, задохнулся после 144 МБ задачи 685 МБ.

Есть ли какой-нибудь другой инструмент, который вам известен, который может справиться с этой задачей? Спасибо.

1 Ответ

1 голос
/ 07 сентября 2012

Создание такого пуленепробиваемого сценария было бы болезненно. Однако сделать это только для ваших данных, вероятно, легко.

Если вы начинаете с этого:

INSERT INTO tblTable VALUES (1,4,"String"),(2,4,"String"),(3,4,"String");

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

Find:   ,(
Replace with: ;\nINSERT INTO tblTable VALUES (

Теперь просмотрите и убедитесь, что он выглядит правильно, и дайте ему порваться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...