Мастер импорта данных из таблицы 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, а затем убьет процесс. Затем удалите все из таблицы и загрузите данные. Это своего рода уродливый хак, но у меня это сработало.