千萬級資料匯出excel的一點心得

2021-10-07 11:22:52 字數 704 閱讀 3032

最近做了個專案,使用mysql資料庫,要求做到千萬級的資料用excel匯出,試了良久,找出了幾個方法.

1.分批讀取,用limit,這個資料量小的時候還行,資料量一大當場傻眼

2.使用流式讀取,耗時3分鐘,速度還可以再優化,就是占用記憶體太大,1000w資料佔了3g運存,關鍵字為 

resultsettype="forward_only" fetchsize="-2147483648"
select sn from device where strategy_id =#

但是這樣得話老大非找我麻煩不可.不過百萬左右的資料用這個,速度是真快

3.使用兩者結合,在mybatis裡開啟流式讀取,並且啟用分批讀取,這樣資料量大的時候分批讀取也不會太慢,讀取一批資料,處理一批資料並清空,然後讀取下一段,這樣耗時10分鐘左右,256m記憶體也正常執行,配合easyexcel

select sn from device where strategy_id =#  limit #,#

excelwriter excelwriter = null;

try

} catch (ioexception e)

excelwriter.finish();

記得一定要把集合清空

mysql 千萬級資料的匯入匯出

最近應公司要求,在做資料庫的匯入匯出。經查詢每天的資料量在350w條左右。經過大量測試,感覺以下方法比較好 資料匯出 select into outfile 基本語法 select into outfile file name character set charset name export op...

poi百萬級資料匯出excel

通過傳入實體類陣列和指定匯出列來即可,匯出excel,讀者可直接複製到專案直接使用,下面只是個簡單的示例提供參考 一 匯出excel工具類 匯出實體類 param head 表頭 param exportcolumn 匯出字段 param exportlist 實體陣列 param clazz 實體...

關於java匯出EXCEL的一點小見解

第一步要做的就是把jxl.jar包匯入進去,這樣才可以繼續後面的步驟。先建立乙個輸出流 outputstream output response.getoutputstream 建立可寫入的excel工作薄,且內容將寫入到輸出流,並通過輸出流輸出給客戶端瀏覽 writableworkbook wb ...