Импорт/эк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

0 Comments

Leave A Reply