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
опция указывает на интерактивную подсказку пароля)