php實現匯出10萬條資料

2021-09-11 17:18:55 字數 775 閱讀 8266

開發中經常遇到需要從資料庫匯出大量資料的問題,匯出excel需要占用太多記憶體,最終回導致記憶體溢位而失敗。csv是更好的選擇。同時可以使用php5.5之後賦予的新功能——yield(生成器)來優化效能,具體可以看鳥哥部落格

/**

* 分段匯出所有使用者

*/public function exportall()

) as $value)

foreach ($value as $v)

fclose($f);

}//匯出合併後的檔案

$this->mergefile(function($file));

}/**

* 獲取階段匯出資料

*/private function getcounts($count,$handle)

yield d('user')->limit($i*1000,1000)->select();

}}/**

* 處理陣列格式

*/private static function makearray(array $data)

return $new;

}/**

* 合併檔案

*/private function mergefile($handle)

}if ($handle instanceof \closure)

}/**

* 清除檔案

*/private static function clearfile()

}

C 使用EPPlus 秒匯出10萬條資料

1.先要引用dll檔案,可以直接使用vs自帶的包管理,如下圖 輸入 epplus 我這裡是安裝過了的所以這裡顯示的是解除安裝而不是安裝。安裝成功了之後會看到這個dll檔案 如下 匯出excel protected void btnmemexcel click object sender,eventa...

PHP批量匯出20萬條資料解決消耗記憶體和時間問題

在專案中使用php批量匯出資料到excel中,大量資料2w,5w,10w資料就要面臨問題 1 匯出時間變得很慢,少則1分鐘,多則好幾分鐘,資料量一旦上來,還可能面臨導不出來的困窘 這種匯出效率正常人都會受不了,更何況是要求苛刻的使用者 2 匯出消耗大量的記憶體資源,即使把php記憶體使用設定為無限大...

PHP爬蟲 100萬條資料其實不難

php爬取100萬條資料,首先要思考這三個問題 怎麼爬取?怎麼提公升爬取速度?怎麼存放爬取的資料?第乙個想到是不是分布式爬蟲呢,主機多的話是可以這麼張狂任性的,單機的話就要內斂些了。不能分布式,那可以多執行緒啊,換個方向也是很有逼格的。php多執行緒,我首選 swoole 了,不僅可以 多執行緒,還...