Consulta de mais de 100.000 Linhas em tabela MySql usando PHP.
Olá!
Minha tabela possui mais de 100 mil registros e preciso capturar todos para a geração de um arquivo do tipo xlsx.
O esquema atual consiste em capturar esses dados e armazená-los em um único array de objetos para poupar processamento enquanto a conexão está aberta.
Após o fechamento da conexão, eu trato essas informações separando-as em outros arrays de objetos para gerar as estatísticas e colocá-las no arquivo xlsx.
Observações:
- Esse primeiro array de objetos armazena 16 campos da tabela para cada objeto.
- A velocidade de captura desses dados está em torno de 40 segundos(o que não é tão ruim pois a intensão é de processar esses dados durante a madrugada com o uso do crontab e do wget e disponibilizar os arquivos pela manhã).
- O grande problema está justamente no tratamento desse array porque preciso de vários laços para gerar as informações.
- Já estou utilizando a função: set_time_limit(0) do PHP para tornar o processamento possível.
- Por enquanto não estou usando a biblioteca PHPExcel, assim como nenhuma outra, porque quero testar o desempenho sem elas, tratar as informações que irão para o arquivo e... para não perder tempo à toa tendo um código maior para verificar.
Como faço para aumentar o desempenho do processamento?
Na última vez deixei processando por mais de 4 horas e disponibilizei 1GB de memória através do init_set('memory_limit', '1G') do PHP. E adivinhem? O processamento não ficou completo.
Discussão (4)
Carregando comentários...