之前使用簡單的HSSFWorkbook,導出的數據不能超過
後來改成SXSSFWorkbook之後可以導出更多,但是
而且我之前的代碼是一次性查出所有數據,幾十萬條,直接就超時了。
之前的代碼是一次性查出所有的結果,list裏面存了幾十萬條數據。因爲功能設計的問題,我這一個接口要同時處理三個功能:
再加上查詢SQL的效率問題,導致請求超時。
現在爲了做到處更大量的數據只能選擇優化。優化查詢的sql這裏就不講了,只講導出功能的優化。
其實就是分批次處理查詢結果:
這樣做的好處是查詢速度變快,封裝速度也變快,整體速度變快就不會出現超時,而且,每次分頁查出的結果放到list中不會出現佔用JVM內存過大的情況。避免出現內存溢出導致系統崩潰。
再次優化:
上面這樣做雖然可以導出,但是代碼看起來不美觀:
這樣看起來就簡潔很多了。
經驗證,查詢加封裝EXCEL7000條數據處理只需要1秒