У меня есть 4 миллиона данных, и этот столбец мне нужно перенести в новую базу данных MySQL.
Мне нужен скрипт PHP, который я могу запустить без сбоя памяти и каких-либо данных.
Я обнаружил, что будет лучше использовать многозадачный процесс. Кто-нибудь может подсказать, какой вариант лучше и как это сделать в PHP и Linux?
Если две базы данных находятся на одном и том же сервере, вы можете получить хорошую производительность с помощью SELECT INTO, даже для разных баз данных. В противном случае вы можете экспортировать данные и использовать данные загрузки, чтобы импортировать их в новую структуру. 13.2.6 ЗАГРУЗКА ДАННЫХ INFILE Синтаксис.
Если вы действительно решили использовать php, то я бы предложил использовать фоновых рабочих в очереди — таким образом, каждый работник может обрабатывать небольшое количество записей в каждой (возможно, 1000 — во избежание проблем с памятью). Это займет больше времени для запуска, а также для настройки. Мы использовали PHP-спасательное для чего-то подобного (запуск данных из БД в Redis) с хорошим успехом.
Других решений пока нет …