powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Скорость импорта CSV
4 сообщений из 4, страница 1 из 1
Скорость импорта CSV
    #39279322
mlader
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

Прислали мне CSV-шник размером 10 гигов, чтобы сделать пару запросов. Поставил я себе MySQL Workbench, подготовил таблицу и начал импорт файла (всё происходит на моем домашнем компе). Прогресс-бар даже не начал зеленеть, я тормознул импорт, чтобы посмотреть, сколько записей загрузилось. Оказалось, где-то в районе 5000. При повторных попытках скорость импорта только падала.
Питоновский скрипт уже примерно час считает количество строк в файле: на данный момент это 1 700 000, и конца не видно. Даже исходя из этого количества записей, таблица импортируется только через две недели.

Теоретически возможен импорт 10 гигов из CSV в таблицу в обозримые сроки? Каков способ? Какова вообще должна быть нормальная скорость импорта?

Комп в принципе нормальный - винда х64, 8 гб ОЗУ...
...
Рейтинг: 0 / 0
Скорость импорта CSV
    #39279328
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mlader,

как начал импорт, ddl таблицы?
для нормальной работы сам csv должен быть не на диске , где файлы базы
...
Рейтинг: 0 / 0
Скорость импорта CSV
    #39279331
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых, mysql умеет вот такую забавную вещь: http://dev.mysql.com/doc/refman/5.7/en/csv-storage-engine.html
Можно создать с таким storage engine таблицу, описывающую ваш файлик, выключить mysql, подменить файл данных, запустить mysql и работать с файлом без фактического импорта содержимого. (не уверен, надо ли даже выключать mysql при этом, но хуже не будет)
Индексов нет, но раз вам и надо-то всего пару запросов - seqscan'ом их возможно будет быстрее прочитать сразу, чем копировать всё и потом вешать индекс. Или insert .. select'ом скопировать только нужные данные в другую таблицу и потом вешать индексы.

Далее именно импорт. Самое быстрое - это load data infile, когда сама субд файл и читает и копирует и пишет в новую таблицу. http://dev.mysql.com/doc/refman/5.7/en/load-data.html Тоже специально для CSV-файлов. Оно же - нативная утилита mysqlimport
Ещё стоит учесть вот эту страницу мануала: https://dev.mysql.com/doc/refman/5.7/en/optimizing-innodb-bulk-data-loading.html
...
Рейтинг: 0 / 0
Скорость импорта CSV
    #39279351
mlader
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Melkij, спасибо. В принципе, обошелся LOAD DATA INFILE, получилось 283 млн записей за полтора часа.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Скорость импорта CSV
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]