鍍金池/ 問答/PHP/ laravel 大數(shù)據(jù)導(dǎo)出excel 如何優(yōu)化

laravel 大數(shù)據(jù)導(dǎo)出excel 如何優(yōu)化

laravel 大數(shù)據(jù)導(dǎo)出 不能執(zhí)行 如何優(yōu)化

回答
編輯回答
純妹

不能執(zhí)行?代碼有bug?
大數(shù)據(jù)的時候foreach加引用

2017年4月18日 15:44
編輯回答
久愛她

你這樣提問的一句話,得讓別人寫一長篇文字才能說明白,而且寫完了還不一定能解決你的問題,萬一就是你的代碼有bug 吶?
把你的代碼分段粘貼進(jìn)來,說明一下。然后再把報錯內(nèi)容也截圖放在提問中先。

2017年3月11日 17:55
編輯回答
清夢

分頁取出數(shù)據(jù),然后追加寫入到文件。

2018年6月9日 02:04
編輯回答
臭榴蓮

剛好,今天早上sg給我推了一篇文章,
PHP實時生成并下載超大數(shù)據(jù)量的EXCEL文件
這或許能幫到你不少

2018年9月4日 04:13
編輯回答
九年囚

可以使用yield;
可以說是多大的數(shù)據(jù)都能執(zhí)行,社區(qū)里也有很多介紹的,可以去看看。

2018年6月21日 08:48
編輯回答
綰青絲

如果導(dǎo)出成csv格式的話,不會有啥問題吧,直接打開一個文件,流式寫入數(shù)據(jù)就可以了。
但是如果是使用phpexcel的話,每個cell都是一個php對象,就算是開啟緩存,數(shù)據(jù)一多,還是會報內(nèi)存不夠的錯誤。

2018年8月29日 12:08
編輯回答
心悲涼

數(shù)據(jù)很大就分頁批量追加寫進(jìn)Excel文件中

2017年3月4日 17:26
編輯回答
安淺陌

沒有報錯就是數(shù)據(jù)很大 最后直接沒反應(yīng)了
clipboard.png
直接拼接數(shù)據(jù)庫中的數(shù)據(jù)

2017年1月26日 08:43
編輯回答
葬愛

這個問題才使用了一種解決方案,這里就不考慮你的sql和代碼的執(zhí)行效率了.這里也不考慮csv格式了,因為很多運營或者其他需要數(shù)據(jù)的人是需要格式的.原本我做的導(dǎo)出里面將近有70多個字段,所以你懂得導(dǎo)出大量數(shù)據(jù)時會有兩個明顯問題腳本執(zhí)行時間長內(nèi)存吃得多,很容易504(這里不討論nginx php-cgi的配置),而且會占用大量cpu時間 cpu占用飆升,另一個可能的問題就是當(dāng)有多個導(dǎo)出并行時就會吃光大量內(nèi)存,影響線上業(yè)務(wù).所以可以采用分頁導(dǎo)出,然后這個分頁可以是還在服務(wù)端處理輸出,另一個更好的方案就是 服務(wù)端輸出JSON 客戶端來導(dǎo)出excel,分頁加瀏覽器導(dǎo)出 可以非常好的解決這個問題,推薦一個js導(dǎo)出插件 sheetJs github https://github.com/SheetJS/js...

2017年9月13日 17:25
編輯回答
凝雅

遍歷請求接口寫入緩存再導(dǎo)出excel。

2017年11月4日 12:01