перенести миллионы данных MySQL в другую базу данных с различной структурой в PHP-скрипте

У меня есть 4 миллиона данных, и этот столбец мне нужно перенести в новую базу данных MySQL.
Мне нужен скрипт PHP, который я могу запустить без сбоя памяти и каких-либо данных.

Я обнаружил, что будет лучше использовать многозадачный процесс. Кто-нибудь может подсказать, какой вариант лучше и как это сделать в PHP и Linux?

1

Решение

Если две базы данных находятся на одном и том же сервере, вы можете получить хорошую производительность с помощью SELECT INTO, даже для разных баз данных. В противном случае вы можете экспортировать данные и использовать данные загрузки, чтобы импортировать их в новую структуру. 13.2.6 ЗАГРУЗКА ДАННЫХ INFILE Синтаксис.

Если вы действительно решили использовать php, то я бы предложил использовать фоновых рабочих в очереди — таким образом, каждый работник может обрабатывать небольшое количество записей в каждой (возможно, 1000 — во избежание проблем с памятью). Это займет больше времени для запуска, а также для настройки. Мы использовали PHP-спасательное для чего-то подобного (запуск данных из БД в Redis) с хорошим успехом.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]