Mysql
 sql >> Database >  >> RDS >> Mysql

Come esportare milioni di righe da MySQL a CSV tramite PHP senza esaurire la memoria?

Invece di tentare di costruire l'albero degli oggetti, puoi provare direttamente a selezionare il risultato in un file:http://dev.mysql.com/doc/refman/5.7/en/select.html

Qualcosa come

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

Questo dovrebbe lasciare il lavoro a mysql e bypassare qualsiasi limitazione di memoria php.

Come ha notato venca:in questo caso l'utente con cui stai eseguendo il servizio mysql ha bisogno di autorizzazioni di scrittura per la directory in questione.