php百萬數(shù)據(jù)如何寫入csv

這篇文章主要介紹了php百萬數(shù)據(jù)如何寫入csv的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇php百萬數(shù)據(jù)如何寫入csv文章都會有所收獲,下面我們一起來看看吧。

創(chuàng)新互聯(lián)建站成立于2013年,先為巴中等服務建站,巴中等地企業(yè),進行企業(yè)商務咨詢服務。為巴中企業(yè)網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。

需求:

百萬數(shù)據(jù)寫入 csv。

框架:

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

分析:

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

偽代碼:

//xxx - 根據(jù)自己項目替換
//調取腳本文件
exec(xxx);

//腳本文件
//設置執(zhí)行時間和內存
set_time_limit(0);
ini_set('memory_limit', '128M');
//循環(huán)獲取
$id = 0;
$data = 'xxx'.'\n';//表頭
while(true){
    //SQL
    $list = xxx WHERE id > $id ORDER BY id ASC LIMIT 10000; //每次取1w防止數(shù)據(jù)庫壓力大,根據(jù)sql來,我這個有聯(lián)表,
    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 寫在循環(huán)里的,后來發(fā)現(xiàn)數(shù)據(jù)量大的時候,幾十萬數(shù)據(jù) $data 內存就超了另外如果超百萬數(shù)據(jù)的話需要做分文件導出,excel 不支持打開超過 1048576 行,理論上就是加個 $all_count 參數(shù)計當前查詢的總數(shù),超過百萬再加新文件。

關于“php百萬數(shù)據(jù)如何寫入csv”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“php百萬數(shù)據(jù)如何寫入csv”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當前文章:php百萬數(shù)據(jù)如何寫入csv
鏈接URL:http://muchs.cn/article4/jejjie.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供品牌網站設計、網站建設軟件開發(fā)、外貿網站建設、手機網站建設

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網站建設