Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment exporter des millions de lignes de MySQL vers CSV via PHP sans épuiser la mémoire ?

Plutôt que d'essayer de construire l'arbre d'objets, vous pouvez directement essayer de sélectionner le résultat dans un fichier :http://dev.mysql.com/doc/refman/5.7/en/select.html

Quelque chose comme

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

Cela devrait laisser le travail à mysql et contourner les limitations de mémoire php.

Comme l'a noté venca :dans ce cas, l'utilisateur sous lequel vous exécutez le service mysql a besoin d'autorisations d'écriture dans le répertoire en question.