Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como exportar milhões de linhas do MySQL para CSV via PHP sem esgotar a memória?


Em vez de tentar construir a árvore de objetos, você pode tentar selecionar diretamente o resultado em um arquivo:http://dev.mysql.com/doc/refman/5.7/en/select.html

Algo como
SELECT * INTO OUTFILE "c:/temp/mycsv.csv"
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY "\n"
FROM theTable;

Isso deve deixar o trabalho para o mysql e ignorar quaisquer limitações de memória do php.

Como venca observou:Neste caso, o usuário sob o qual você está executando o serviço mysql precisa de permissões de gravação no diretório em questão.