Java API SXSSFWorkbook導出Excel大批量數據(百萬級)解決導出超時

之前使用簡單的HSSFWorkbook,導出的數據不能超過

後來改成SXSSFWorkbook之後可以導出更多,但是

而且我之前的代碼是一次性查出所有數據,幾十萬條,直接就超時了。

之前的代碼是一次性查出所有的結果,list裏面存了幾十萬條數據。因爲功能設計的問題,我這一個接口要同時處理三個功能:

再加上查詢SQL的效率問題,導致請求超時。

現在爲了做到處更大量的數據只能選擇優化。優化查詢的sql這裏就不講了,只講導出功能的優化。

其實就是分批次處理查詢結果:

這樣做的好處是查詢速度變快,封裝速度也變快,整體速度變快就不會出現超時,而且,每次分頁查出的結果放到list中不會出現佔用JVM內存過大的情況。避免出現內存溢出導致系統崩潰。

再次優化:

上面這樣做雖然可以導出,但是代碼看起來不美觀:

這樣看起來就簡潔很多了。

經驗證,查詢加封裝EXCEL7000條數據處理只需要1秒

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章