Ну тут способов не так уж и много... Смотря какая цель прочтения файла, и пользовательский ли файл?
Если файл внутренний, то я бы запустил очередь и читал по 100-300 строк за итерацию, и нужное складывал в базу данных. Или же можно просто все строки сложить в базу данных и потом одним запросом вытянуть необходимое...
Оптимальный способ это система очередей, или если не охота заморачиваться то по крону раз в минуту, но так по времени значительно дольше выйдет