Как быстро импортировать 10млн строк в mySQL ?

Автор Рупорт, 19-08-2015, 13:36:08

« назад - далее »

РупортTopic starter

Установлен последний mySQL на моем компе. (i7/16GB Ram/ssd).
Имеется 10млн. строк инструкций REPLACE INTO t1 VALUES (null,'бла-бла-бла','бла-бла-бла');
Через коммандную строку mySQL импортируются в таблицу со скоростью 26 строк в секунду, через HeidiSQL такая же скорость.
Получается, чтобы импортировать 10млн строк, понадобится 10000000/26/3600=106 часов или около четырех суток. Это очень долго.
Помню когда импортировал базу размером в 400-500мб на хостинг через phpmyadmin, то там этот процесс занимает не более 30-40 секунд.
Почему такая разница в скорости? Или как правильно  быстро импортировать базу из дампа в 10млн. строк?
  •  


Старый

Что значит строк? У вас текстовый вариант базы с разделителями или всё-таки полноценная выгрузка базы?

Так и загружайте её автоматически. Зачем построчно?

Через командную строку делают загрузку, если версии не совпадают, ошибок много. Тогда приходится частями (таблицами), на ходу правя ошибки.

А так чего морочиться? Сделайте загрузку через тот же phpMyAdmin или клиент, которым выгружали. Бывает такое, что при выгрузке одним,а загрузке другим выдаёт ошибки.


РупортTopic starter

#2
Цитата: Старый от 19-08-2015, 13:58:16Так и загружайте её автоматически. Зачем построчно?
как?
инструкции INSERT у меня  в отдельном файле, базы еще не существует.
REPLACE INTO t1 VALUES (null,'бла-бла-бла','бла-бла-бла');
REPLACE INTO t1 VALUES (null,'бла-бла-бла','бла-бла-бла');
REPLACE INTO t1 VALUES (null,'бла-бла-бла','бла-бла-бла');
REPLACE INTO t1 VALUES (null,'бла-бла-бла','бла-бла-бла');
.....
REPLACE INTO t1 VALUES (null,'бла-бла-бла','бла-бла-бла');
файл весит 950мб, php на комп не установлен.

Добавлено: 19-08-2015, 14:20:51


ответ подсказали на др. форуме:

LOAD DATA LOCAL INFILE "C:/-mysql/out.txt" INTO TABLE db1.t1;
операция заняла 1-2 минуты
  •