欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

Java如何從數(shù)據(jù)庫中導出100W的數(shù)據(jù)又快又不內(nèi)存溢出?

錢琪琛2年前13瀏覽0評論

第一種方法,Java調(diào)用一下shell腳本,用shell腳本去執(zhí)行導出CSV到一個文件夾,然后再下載,完事,因為用其它方式導出會更加高效,內(nèi)存和速度都很快。

我記得以前在電信里面工作的時候,經(jīng)常要導數(shù)據(jù),數(shù)據(jù)量也不是很多,但是次數(shù)頻繁,基本都是和運維合作搞一個腳本調(diào)用然后下載,shell的導出方式很快,內(nèi)存占用不高,不過導出之后還要上傳到應用目錄下下載,調(diào)試過程比較麻煩。

第二種辦法,就是用Java去導出來,但是導的時候要做一個處理,例如導出Excel或者TXT的時候,可以起兩個線程,中間見一個隊列,一個線程每次去讀5000回來放隊列里面,另一邊每次消費1000條再去刷磁盤,不要一條刷一次,把讀寫分離開來,可以達到一個比較優(yōu)化的地步,如果還想更優(yōu)化的話,可以試試研究磁盤順序?qū)懀切﹎q就基本都是順序?qū)懘疟P加快速度的。

其實不管用什么辦法,都要結(jié)合自己團隊和項目情況來,工期和效率要適中,畢竟還是要根據(jù)項目的目標來完成功能。