У меня есть скрипт, который переносит около 1,5 миллионов строк (данных ~ 400 МБ) из таблицы в другую таблицу (во время этого процесса некоторые данные преобразуются, модифицируются и помещаются в правильное поле). Это простой скрипт, он просто рекурсивно загружает данные, а затем помещает их в новые таблицы в правильных полях и форматах. Сценарии работают (в качестве примера), вытаскивая всех пользователей из таблицы, затем начинает циклически проходить через пользователей, вставляя их в новую таблицу, затем вытягивая все сообщения от этого пользователя, просматривая и вставляя их в правильную таблицу затем извлеките все комментарии из поста и вставьте их, затем перепрыгните назад и перетащите все контакты для этого пользователя, наконец, на следующего пользователя, где он проходит тот же процесс.
У меня просто проблема с огромным объемом передаваемых данных, потому что он настолько велик, и в PHP нет никакого управления памятью, кроме сборки мусора (которую я знаю), я не могу завершить сценарий (он проходит через около 15 000 подключений и элементов, переданных до того, как он исчерпает память объемом 200 МБ).
Это единовременно, поэтому я делаю это на своем локальном компьютере, а не на реальном сервере.
Поскольку unset () на самом деле не освобождает память, есть ли другой способ освободить данные в переменной? Одна вещь, которую я попытался сделать, это переписать переменную в значение NULL, но это, похоже, не помогло.
Любой совет был бы потрясающим, потому что, мужик, это воняет.