sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo exportar millones de filas de MySQL a CSV a través de PHP sin agotar la memoria?

En lugar de intentar construir el árbol de objetos, puede intentar seleccionar directamente el resultado en un archivo:http://dev.mysql.com/doc/refman/5.7/es/select.html

Algo como

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

Esto debería dejar el trabajo a mysql y evitar cualquier limitación de memoria de php.

Como señaló venca:En este caso, el usuario bajo el cual está ejecutando el servicio mysql necesita permisos de escritura en el directorio en cuestión.