国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP導出超大的CSV格式的Excel表方案

yedf / 2852人閱讀

摘要:場景和痛點說明我們工作場景都常會導出相關的數據,有時候需要大量的數據,,都有可能我們現有方案都是直接利用等類庫來操作,的加載或是寫入一次導出會遇到超時內存和時間限制問題,就算我們依舊不是最好的方案下面我們利用輸出,把數據依次輸出清空再輸出的

場景和痛點 說明
我們工作場景都常會導出相關的excel數據,有時候需要大量的數據,10W,100W都有可能

我們現有方案都是直接利用phpexcel等類庫來操作,phpexcel的load加載或是寫入一次導出會遇到超時內存和時間限制問題,就算我們ini_set依舊不是最好的方案

下面我們利用php輸出csv,把數據依次輸出清空再輸出的方式到輸出終端(瀏覽器訪問就是瀏覽器輸出)

編寫過程 說明
關鍵具體在代碼里注釋
代碼
 $v) {
    $column_name[$i] = iconv("utf-8", "GBK", $v);
}

// 將標題名稱通過fputcsv寫到文件句柄
fputcsv($fp, $column_name);

$export_data = [];
for ($i = 0; $i < 10; $i++) {
    foreach (range(1, 100000) as $k => $v) {
        $export_data[] = [
            "XXX" . $v, "XXX" . $v, "XXX" . $v, "XXX" . $v, "XXX" . $v, "XXX" . $v, "XXX" . $v, "XXX" . $v, "XXX" . $v, "XXX" . $v
        ];
    }
    foreach ($export_data as $item) {
        $rows = array();
        foreach ($item as $export_obj) {
            $rows[] = iconv("utf-8", "GBK", $export_obj);
        }
        fputcsv($fp, $rows);
    }

    $export_data = []; //重新復制,釋放掉舊數據
}
fclose($fp);

$endTime = microtime(true);
$memoryUse = memory_get_usage();

file_put_contents("11.log", "內存占用:" . convert($memoryUse) . "; 用時:" . ($endTime - $startTime) . PHP_EOL, 8);

exit(0);
結果 測試說明
我們模擬數據,輸入了100萬(10000 * 10)數據
日志記錄內存使用率
# 文件大小:84.7 MB (88,889,540 字節)
# 這里的用時因為業務模擬,所以具體根據操作業務數據可能會更長,內存占用同理

內存占用:118.99 kb; 用時:74.375253915787

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/29002.html

相關文章

  • php 導出 excel

    關于 PHP 導出 excel csv 常用的有 PHPexcel ,本文整理了一些其他方案。 高性能 Excel 擴展 sudo apt-get install -y zlib1g-dev git clone https://github.com/jmcnamara/libxlsxwriter.git cd libxlsxwriter make && sudo make install // ...

    付永剛 評論0 收藏0
  • PHP實時生成并下載超大數據量EXCEL文件

    摘要:而常用的包需要把所有數據拿到后才能生成,在面對生成超大數據量的文件時這顯然是會造成內存溢出的,所以考慮使用讓邊寫入輸出流邊讓瀏覽器下載的形式來完成需求。 最近接到一個需求,通過選擇的時間段導出對應的用戶訪問日志到excel中, 由于用戶量較大,經常會有導出50萬加數據的情況。而常用的PHPexcel包需要把所有數據拿到后才能生成excel, 在面對生成超大數據量的excel文件時這顯然...

    Neilyo 評論0 收藏0
  • php 數據導出

    摘要:最近在做后臺管理的項目,后臺通常有數據導出到的需要,經過之前搜索通常推薦使用的是,我經常使用的是,對于也有很好用的對應。 最近在做后臺管理的項目,后臺通常有數據導出到 excel 的需要,經過之前搜索通常推薦使用的是 php excel ,我經常使用的是 laravel ,對于 php excel 也有很好用的對應 package。 開始使用是非常好用的,但是當需要導出的數據達到上萬...

    MartinHan 評論0 收藏0
  • 導出CSV文件格式錯誤小結

    摘要:目前導出方式占用內存較大。比如有些狀態字段,數據庫存的就是數字或只占一個字節,完全換成中文狀態的話,可能達個字節甚至更多。若是必須要用中文形式。中文亂碼解決的話,其實也很簡單,函數,將轉為編碼,在中打開就不會錯了 問題描述:目前、一般情況下,在web開發過程中,使用導入導出報表的情形很多。我們先說導出。項目數據量多導出行數較多,50萬行左右,選擇的是csv方式導出。針對以下應用場景,導...

    Taonce 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<