Импорт/экcпорт больших CSV в MySQL в консоли SSH

Представим что у вас есть очень большой файл CSV, который нужно импортировать быстро и без проблем.
Приведу пример структуры файла, для кода которым будем испортировать:

id,имя,телефон,адрес
1,James,505-234-2123,3456 Super St.
2,Mark,254-342-6732,7351 Roger Rd.
Код необходимо исполнять в консоли SSH
mysqlimport  --ignore-lines=1 --fields-terminated-by=, --columns='ID,Name,Phone,Address' --local -u root -p Database /path/to/csvfile/TableName.csv

Параметры:
–ignore-lines – указывает сколько строк будет пропущено в начале файла
–columns – соответственно столбцы базы данных, которым соотвтетствуют столбцы в вашем файле
–local – указывает на то что файл будет считываться локально
-u – логин пользователя
-p – указывает что необходимо будет запросить пароль для подключения к БД
Database – имя базы данных в которую необходимо будет произвести импорт
/path/to/csvfile/TableName.csv – путь к файлу импорта.

Важно! Файл необходимо называть именем таблицы если она уже существует чтобы данные попали в неё.


Теперь об экспорте, просто приведу код, по аналогии я думаю вы сможете догадаться за что отвечают параметры.

mysqldump -u [USER_NAME] -p "--where=[WHERE]" "--fields-terminated-by=," "--tab=./" [DB_NAME] [TABLE] > [TABLE].txt

Эта команда производит экспорт и создаёт два файла – txt и sql


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *