1、首先創(chuàng)建要插入100萬數(shù)據(jù)的表格,隨機(jī)產(chǎn)生數(shù)字。
發(fā)展壯大離不開廣大客戶長(zhǎng)期以來的信賴與支持,我們將始終秉承“誠(chéng)信為本、服務(wù)至上”的服務(wù)理念,堅(jiān)持“二合一”的優(yōu)良服務(wù)模式,真誠(chéng)服務(wù)每家企業(yè),認(rèn)真做好每個(gè)細(xì)節(jié),不斷完善自我,成就企業(yè),實(shí)現(xiàn)共贏。行業(yè)涉及廣告推廣等,在成都網(wǎng)站建設(shè)、成都全網(wǎng)營(yíng)銷、WAP手機(jī)網(wǎng)站、VI設(shè)計(jì)、軟件開發(fā)等項(xiàng)目上具有豐富的設(shè)計(jì)經(jīng)驗(yàn)。
2、其次創(chuàng)建存儲(chǔ)過程,并向表中插入數(shù)據(jù),調(diào)用存儲(chǔ)過程進(jìn)行插入數(shù)據(jù),插入300萬條數(shù)據(jù),且分幾次插入。
3、最后導(dǎo)出數(shù)據(jù)到csv,使用函數(shù)selectxxxintooutfile,其中outfile后面的路徑可以是Windows或macOS或者Linux。
php導(dǎo)出大量數(shù)據(jù)到Excel,可以通過生成多個(gè)Excel文件,然后壓縮成壓縮包解決。方案是:假如我們數(shù)據(jù)庫(kù)有10w條數(shù)據(jù),每2000條數(shù)據(jù)生成一個(gè)Excel文件,這樣每次只要從數(shù)據(jù)庫(kù)里查詢出2000條數(shù)據(jù)即可,一定要分頁去查詢。原因:主要是數(shù)據(jù)庫(kù)性能和寫文件性能。分頁查詢可以解決數(shù)據(jù)庫(kù)壓力的問題,生成多個(gè)文件可以解決單個(gè)文件太大,后期維護(hù)Excel文件的問題。要注意的:1.在導(dǎo)出邏輯文件開頭,一定要聲明set_time_limit(0),防止腳本超時(shí);2.每個(gè)文件生成后,適當(dāng)?shù)膕leep一下,讓程序休息一下下;3.因?yàn)橐淮螌?dǎo)出最后要將生成的多個(gè)Excel文件打包成一個(gè)壓縮包,所以要?jiǎng)h除掉生成的Excel文件,節(jié)省服務(wù)器存儲(chǔ)空間;下面是我實(shí)際工作中,寫的一個(gè)php導(dǎo)出大量數(shù)據(jù)到Excel的代碼,你可以參考一下:
php導(dǎo)出數(shù)據(jù)excel有專門的庫(kù),當(dāng)導(dǎo)出少量數(shù)據(jù)的時(shí)候速度很快,但是當(dāng)數(shù)據(jù)量大的時(shí)候就會(huì)存在服務(wù)器內(nèi)存不夠之類的。
所以在導(dǎo)出大量數(shù)據(jù)的時(shí)候就應(yīng)該分頁查詢數(shù)據(jù),避免服務(wù)器宕機(jī)。正好PHP提供了fputcsv函數(shù)可以將數(shù)據(jù)寫入到csv文件中。
這樣我們就可以使用PHP對(duì)數(shù)據(jù)進(jìn)行分頁查詢,再寫入到csv文件中。