簡體   English   中英

如何從PHP服務器生成和導出大CSV文件?

[英]How to generate and export a big CSV file from my PHP server?

我的服務器可以是PHP或nodeJS,更喜歡留在PHP中,但是如果不能在節點中完成/更好,我將感謝您的回答。

我想生成並導出一個非常大的CSV文件,問題是我無法一次從MySQL加載所有數據,因此目前我將數據限制在一定數量內,這不會使應用程序崩潰,但速度很慢,而且大多數數據將不會導出。

我想到了生成和導出CSV文件的解決方案:

  1. 將1..N個呼叫發送到我的服務器,每個呼叫將生成Part1 ... PartN CSV,然后瀏覽器將它們追加[瀏覽器不會崩潰?]
  2. 在一個請求中,將數據流式傳輸到瀏覽器,但是瀏覽器如何開始下載文件?

我不介意客戶端會等待很多時間,只是想要一個好方法從我在MySQL中獲得的數據中導出〜200MB的csv。

謝謝。

這是使用Mysql表示法的不錯的解決方案:

SELECT *
INTO OUTFILE '/tmp/dbexport.csv' 
FIELDS ENCLOSED BY '"' 
TERMINATED BY ';' 
ESCAPED BY '"' 
LINES TERMINATED BY '\r\n'
FROM tables;

也看看這個答案。

您也可以考慮使用.tsb(制表符分隔的文件),它對您沒有影響:

mysql your_database -e "select * from tables" -B > export.tsv 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM