Мне было интересно, знает ли кто-нибудь, как это можно сделать в PHP. Я запускаю скрипт, который включает в себя открытие файла, взятие первых 1000 строк, выполнение некоторых вещей с этими строками, затем php-файл открывает другой экземпляр самого себя, чтобы взять следующие тысячи строк и так далее, пока не достигнет конца файла , Я использую объект splfile, так что я могу искать определенную строку, что позволяет мне довольно хорошо разбить ее на 1000 строк. Самая большая проблема, с которой я столкнулся, связана с производительностью. Я имею дело с файлами, которые содержат более 10000000 строк, и хотя первые 10000 строк или около того он делает довольно быстро, после этого момента наблюдается значительное экспоненциальное замедление, которое, я думаю, просто требует поиска к этой точке.
Что я хотел бы сделать, это прочитать первую тысячу строк, а затем просто удалить их из файла, чтобы мой сценарий всегда читал первые тысячи строк. Есть ли способ сделать это без чтения остальной части файла в память. Другие решения, которые я видел, включают чтение каждой строки в массиве, а затем избавление от первых X записей, но с десятью миллионами строк, которые потребляют слишком много памяти и времени.
Если у кого-то есть решение или другие предложения, которые бы ускорили работу, это будет с благодарностью.