Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да експортирате милиони редове от MySQL в CSV чрез PHP, без да изчерпвате паметта?

Вместо да се опитвате да изградите дървото на обектите, можете директно да опитате да изберете резултата във файл:http://dev.mysql.com/doc/refman/5.7/en/select.html

Нещо като

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

Това трябва да остави работата на mysql и да заобиколи всички ограничения на php паметта.

Както отбеляза Venca:В този случай потребителят, под който изпълнявате услугата mysql, се нуждае от разрешения за запис във въпросната директория.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL, utf8_general_ci и знаци на кирилица

  2. Python, MySQL и SELECT извеждат в речник с имена на колони за ключове

  3. AWS MySQL RDS срещу AWS DynamoDB

  4. MySQL заявка за присвояване на уникален произволен номер на всеки ред

  5. Как да запазите резултат от MySQL заявка в променлива в c