Когда я выполняю следующий код для пользовательской таблицы из примерно 60 000 записей:
mysql_connect("localhost", "root", "");
mysql_select_db("test");
$result = mysql_query("select * from users");
while ($row = mysql_fetch_object($result)) {
echo(convert(memory_get_usage(true))."\n");
}
function convert($size) {
$unit=array('b','kb','mb','gb','tb','pb');
return @round($size/pow(1024,($i=floor(log($size,1024)))),2).' '.$unit[$i];
}
Я получаю следующую ошибку:
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes)
Есть какие-нибудь мысли о том, как избежать того, чтобы скрипт занимал дополнительную память при каждом прохождении цикла? В моем собственном коде я пытаюсь обеспечить загрузку CSV для большого набора данных с небольшой предварительной обработкой PHP.
Пожалуйста, не рекомендуется увеличивать ограничение памяти PHP - это плохая идея, и, что более важно, все равно создаст восходящую границу того, насколько большой набор данных может быть обработан с помощью этой техники.