So verbessern Sie die Effizienz des PHPExcel-Exports (Hinweis: Das CVS-Format kann ignoriert werden, dieser Export verfügt über Zelloperationen)
Was ich jetzt denke ist:
Optimizing SQL hat jetzt eine Schnittstelle für Datendetails. Jetzt erhalten wir das ID-Array der Daten, um die Projektdetails-Schnittstelle zu durchlaufen, um die erforderlichen Felder zu extrahieren
溫故而知新,可以為師矣。 博客:www.ouyangke.com
phpExcel的性能很差,占用內(nèi)存,用這個一般都會限制導(dǎo)出行數(shù),如果不過多的考慮樣式之類,可以使用t的方式導(dǎo)出excel,
舉個例子
<?php
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=test_data.xls");
//輸出內(nèi)容如下:
echo "姓名"."\t";
echo "年齡"."\t";
echo "學(xué)歷"."\t";
echo "\n";
echo "張三"."\t";
echo "25"."\t";
echo "本科"."\t";
?>
我們公司現(xiàn)在大部分導(dǎo)出excel數(shù)據(jù)都用t,性能完爆phpExcel,題主可以去測試一下性能比
1.能不依賴phpexcel是挺好優(yōu)化,其實很多函數(shù)方法你用不著。而且還要加載
2.sql查詢也是個優(yōu)化,這個沒看到代碼就不說了。
3.你在sql抽出來數(shù)據(jù)可能過多的時候,其實是很占用php內(nèi)存,所以建議寫入excel后就立馬清除數(shù)據(jù)。
使用隊列異步執(zhí)行PHPExcel
的導(dǎo)入和導(dǎo)出,特別是當執(zhí)行的是上萬、上十萬甚至是百萬條數(shù)據(jù)
分批導(dǎo)入和導(dǎo)出
優(yōu)化代碼,盡量減少對數(shù)據(jù)庫的訪問