<dd id="3pk9i"><optgroup id="3pk9i"><video id="3pk9i"></video></optgroup></dd>
<rp id="3pk9i"></rp>

<dd id="3pk9i"><track id="3pk9i"></track></dd>
      1. <th id="3pk9i"></th>
        1. <ol id="3pk9i"><ruby id="3pk9i"></ruby></ol>

        2. 聊聊php百萬數據怎么寫入csv-前沿資訊

          來源:php中文網 | 2022-12-30 16:03:13 |

          本篇文章給大家帶來了關于PHP+csv的相關知識,其中主要介紹了php百萬數據怎么通過腳本文件寫入csv的相關內容,下面一起來看看怎么實現的吧,希望對大家有幫助。

          需求:

          百萬數據寫入 csv。


          (相關資料圖)

          框架:

          N 多年前老框架,百度都搜不到了,所以寫法趨近原生

          分析:

          數據量過大,不能用瀏覽器請求寫入 csv 下載,所以寫個腳本調取

          偽代碼:

          //xxx - 根據自己項目替換//調取腳本文件exec(xxx);//腳本文件//設置執行時間和內存set_time_limit(0);ini_set("memory_limit", "128M");//循環獲取$id = 0;$data = "xxx"."\n";//表頭while(true){    //SQL    $list = xxx WHERE id > $id ORDER BY id ASC LIMIT 10000; //每次取1w防止數據庫壓力大,根據sql來,我這個有聯表,    if(empty($list)){        break;    }    foreach($list as $row){        $data .= """ . $row["xxx"] . "",";        $data .= "\n";        $id = $row["id"];//更新最大id    }    //追加寫入csv    file_put_contents("xxx", mb_convert_encoding($data, "gbk"),FILE_APPEND);    unset($data);//基礎不好不確定初始化能不能清內存就先unset了    $data = "";//初始化}

          本質上就是分批寫入,剛開始試驗的時候是打算不把 file_put_contents 寫在循環里的,后來發現數據量大的時候,幾十萬數據 $data 內存就超了另外如果超百萬數據的話需要做分文件導出,excel 不支持打開超過 1048576 行,理論上就是加個 $all_count 參數計當前查詢的總數,超過百萬再加新文件。

          如果有更好的方法,或者代碼優化部分歡迎討論。

          推薦學習:《PHP視頻教程》

          以上就是聊聊php百萬數據怎么寫入csv的詳細內容,更多請關注php中文網其它相關文章!

          關鍵詞:

          中文字幕在线观看2021
          <dd id="3pk9i"><optgroup id="3pk9i"><video id="3pk9i"></video></optgroup></dd>
          <rp id="3pk9i"></rp>

          <dd id="3pk9i"><track id="3pk9i"></track></dd>
            1. <th id="3pk9i"></th>
              1. <ol id="3pk9i"><ruby id="3pk9i"></ruby></ol>