sql >> Databasteknik >  >> RDS >> Mysql

Hur exporterar man miljontals rader från MySQL till CSV via PHP utan att tömma minnet?

Istället för att försöka bygga objektträdet kan du direkt försöka välja resultatet till en fil:http://dev.mysql.com/doc/refman/5.7/en/select.html

Något som

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

Detta bör lämna jobbet upp till mysql och kringgå eventuella php-minnesbegränsningar.

Som venca noterade:I det här fallet behöver användaren som du kör mysql-tjänsten under skrivbehörighet till katalogen i fråga.




  1. Beställa MySQL-resultat efter IN-sekvens?

  2. Hur man visar transaktionsloggar i SQL Server 2008

  3. MySQL SUM IF-fält b =fält a

  4. STRING_SPLIT() i SQL Server 2016:Uppföljning #1