mysql импорт 650 000 строк - быстрее никак?!

12
LEOnidUKG
На сайте с 25.11.2006
Offline
1725
2072

Имеем:

InnodDB

1 столбец varchar (255) без индекса

SSD диск

innodb_buffer_pool_size = 1G

innodb_flush_log_at_trx_commit = 1

innodb_lock_wait_timeout = 50

Задача:

Нужно импортировать из 1 файла 650 000 строк, файл 30 МБ.

Метод импорта phpmyadmin импорт из CSV

Текущая скорость:

1200 строк в минуту.

Это детский сад по скорости. Что я упускаю? По моему мнению скорость должна быть в 10 раз быстрее как минимум.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
Z
На сайте с 06.09.2012
Offline
129
#1
Черный список врунов и обманщиков: ua-hosting.company, riaas.ru, takewyn.ru, yahoster/cadedic, Andreylab
LEOnidUKG
На сайте с 25.11.2006
Offline
1725
#2

Поставил:

autocommit=0

думал минут 5 и ничего не загрузил, хотя диск напрягал.

После:

unique_checks=0

foreign_key_checks=0

вообще mysql не запускается из-за кучу ошибок в ХЗ каких таблицах на серваке.

Короче сделал тип myISAM за 1 минуту всё загрузил. Вот это я понимаю скорость.

iHead
На сайте с 25.04.2008
Offline
137
#3

Вставляйте за 1 запрос, например, 10 тысяч строк.

Из начальных условий не совсем понятно: 1 поле в таблице или все таки есть еще какие-то поля?

Если есть еще поля с индексами, перед первым инсертом отключайте индекс, а после заливки, включайте обратно.

Рекомендуемый хостинг партнер 1С-Битрикс (https://www.ihead.ru/bitrix/), PHP-хостинг (https://www.ihead.ru/php/), доверенный партнер RU-CENTER (https://www.ihead.ru/news/573.html), официальный представитель REG.RU в Кирове (https://www.ihead.ru/news/851.html)
LEOnidUKG
На сайте с 25.11.2006
Offline
1725
#4
iHead:
Вставляйте за 1 запрос, например, 10 тысяч строк.
Из начальных условий не совсем понятно: 1 поле в таблице или все таки есть еще какие-то поля?
Если есть еще поля с индексами, перед первым инсертом отключайте индекс, а после заливки, включайте обратно.

Да юзал чисто phpmyadmin. Нет, там вообще было только 1 поле и всё. Без ничего. Индексов нет.

Злобный Гыук
На сайте с 30.08.2007
Offline
83
#5
LEOnidUKG:
Поставил:
autocommit=0

думал минут 5 и ничего не загрузил, хотя диск напрягал.

Он и не загрузит если не проставить в конце COMMIT

После:
unique_checks=0
foreign_key_checks=0

Это не влияет на загрузку, если нет констрейнтов(а у вас их нет)...

Короче сделал тип myISAM за 1 минуту всё загрузил. Вот это я понимаю скорость.

Конвертните только таблицу обратно в innodb, ибо myisam - прошлый век и выигрывает у innodb только для узкоспециализированных задач.

А вообще для загрузки/выгрузки пользуйтесь встроенными в mysql вещами и не будете знать что такое долгая загрузка на таких объемах данных.... ваш файл загрузится секунд за 5-10

SEO-api для программистов (/ru/forum/869285)
W
На сайте с 09.04.2013
Offline
46
#6

В phpmyadmin есть метод импорта "CSV using LOAD DATA" .Попробуйте его.

Работает довольно шустро.

У меня при импорте 1 млн строк (InnodDB) обычный CSV вообще завис,этот отработал за пару секунд.

VK
На сайте с 29.12.2011
Offline
42
#7

если есть доступ к консоли сервера можно воспользоваться командой mysql source

https://dev.mysql.com/doc/mysql-backup-excerpt/5.0/en/reloading-sql-format-dumps.html

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

LEOnidUKG
На сайте с 25.11.2006
Offline
1725
#8
webjey:
В phpmyadmin есть метод импорта "CSV using LOAD DATA" .Попробуйте его.
Работает довольно шустро.
У меня при импорте 1 млн строк (InnodDB) обычный CSV вообще завис,этот отработал за пару секунд.

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

edogs software
На сайте с 15.12.2005
Offline
775
#9

Есть еще один вариант - сделать в мускуле таблицу с движком CSV с нужной структурой.

Потом просто копирнуть текущий csv файл вместо мускульного и всё.

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
LEOnidUKG
На сайте с 25.11.2006
Offline
1725
#10
edogs:
Есть еще один вариант - сделать в мускуле таблицу с движком CSV с нужной структурой.
Потом просто копирнуть текущий csv файл вместо мускульного и всё.

Тоже вариант прикольный.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий