Мастер импорта данных из таблицы MySQL чрезвычайно медленный

Мне нужно импортировать CSV файл с 20 миллионами строк и 2 столбцами в базу данных, но когда я пытаюсь сделать это с помощью мастера импорта данных MySQL Workbench, это происходит очень медленно, вероятно, на завершение работы потребуется 1 месяц, глядя на прогресс бар.

Надеюсь, должен быть более быстрый способ сделать это.

Ответ 1

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

Mysql Страница руководства по загрузке данных Infile.

Написал несколько ответов на этот вопрос, но для сравнения с коллегами посмотрите вопрос этого парня и мой ответ и его сравнение времени Workbench с Load Data Infile.

Ответ 2

Это альтернатива. Сбросьте данные CSV в sql script, вам нужно записать код для этого. В основном, ваши данные csv будут преобразованы в аналогичные ниже команды
INSERT INTO TABLE_NAME values(1,2),(1,3),....;
теперь используйте MySQL shell script и используйте команду SOURCE
mysql > source C:/Users/Desktop/sql scripts/script.sql
ваши данные будут импортироваться быстрее по сравнению с прямым импортом CSV для миллионов записей.

Ответ 3

Если вы не хотите писать код, я предлагаю попробовать другой бесплатный клиент GUI, такой как HeidiSQL. Он импортирует CSV/текстовые файлы намного быстрее, чем MySQL Workbench.

Ответ 4

У меня была аналогичная проблема с MySQL workbench. Альтернатива, которую я нашел, это Toad for MySQL (https://www.toadworld.com/m/freeware/1469)

Мне понадобилось бы 40 минут через MySQL admin, подключившись к удаленному MySQL sever. На сервере MySQL загрузка занимает несколько минут. С жабой я могу подключиться к удаленному серверу и загрузить через несколько минут. Я попробовал HeidiSQL, но не нашел его удобным для импорта.

Ответ 5

Всегда предпочитайте загрузку данных для импорта наборов данных, неудобно => вам нужно создать структуру таблицы перед импортом. Мастер импорта позволяет на лету создать новую таблицу прямо из CSV или JSON.

Я думаю, что причина этой медлительности такова: верстак использует python для мастера импорта. Вы можете видеть, что в журнале мастера импорта, когда происходит ошибка, это журнал консоли Python.

Если вы не хотите создавать структуру по каким-либо причинам, вы можете запустить процесс, он создаст таблицу из CSV, а затем убьет процесс. Затем удалите все из таблицы и загрузите данные. Это своего рода уродливый хак, но у меня это сработало.