PHP Usando fgetcsv em um arquivo csv enorme

Usandofgetcsvposso de alguma forma fazerum destrutivo ler onde as linhas que li e processei seriam descartadas, por isso, se eu não passar pelo arquivo inteiro no primeiro passo, posso voltar e continuar de onde parei antesthe script timed out?

Detalhes adicionais:

Estou recebendo um feed de produto diário de um fornecedor que aparece como um arquivo .gz de 200 mb. Quando descompactar o arquivo, ele se transforma em um arquivo .csv de 1,5 gb, com quase 500.000 linhas e 20 a 25 campos. Eu preciso ler essas informações em um banco de dados MySQL, de preferência com PHP para que eu possa agendar um CRON para executar o script no meu provedor de hospedagem na web todos os dias.

Eu tenho um tempo limite rígido no servidor definido para 180 segundos pelo provedor de hospedagem e limite máximo de utilização de memória de 128MB para qualquer script único. Esses limites não podem ser alterados por mim.

Minha idéia era pegar as informações do .csv usando a função fgetcsv, mas eu estou esperando ter que ter vários passes no arquivo por causa do tempo limite de 3 minutos, eu estava pensando que seria legal cortar o arquivo enquanto o processo, não precisaria gastar ciclos pulando linhas que já foram processadas em um passe anterior.