mysqldump и разделяющий INSERT

Когда я запускаю следующую команду mysqldump, она группирует INSERT вместе.

mysqldump --user=username --password=password --host=localhost database | gzip > /parth/to/folder/backup.sql.gz

Например:

INSERT INTO tbl_name VALUES (1,2,3), (4,5,6), (7,8,9)

Это отлично подходит для экономии места, но затрудняет импорт файла SQL объемом 3 ГБ. У меня есть скрипт, который загружает большой файл SQL по частям. Он разбивает строки так, что время на сервере / странице не истекает.

Что бы я предпочел, так это:

INSERT INTO tbl_name VALUES (1,2,3);
INSERT INTO tbl_name VALUES (4,5,6);
INSERT INTO tbl_name VALUES (7,8,9);

Это возможно?

1 ответ

Решение

Вы можете сделать это через:

mysqldump -uUSER --skip-extended-insert -p DATABASE | gzip > dump.sql.gz

где USER ваш пользователь, DATABASE ваша база данных

Но - действительно, зачем это делать? Многократная вставка лучше с точки зрения производительности.

Также, подсказка: если вы вводите эту команду (то есть она не является частью какого-либо скрипта) - не указывайте пароль, поскольку он будет сохранен в истории (по умолчанию) - это может быть небезопасно (в примере выше одиночного -p опция указывает на интерактивную подсказку пароля)

Другие вопросы по тегам