1. 程式人生 > >關於大批量資料處理的一些簡單想法

關於大批量資料處理的一些簡單想法

1.上個專案有數以百萬的記錄需要處理,普通的處理方法速度會異常的緩慢,需要用的批量的資料處理方法

2.為了提升查詢的速度,起初考慮用MAP將待查詢的資料進行提前查詢(儲存),批量查詢的時候可以僅查詢一次就可以將所有的記錄查詢出來,想法很美好,MAP在理論上來說是可以無限大的,但是機器的記憶體是有限的,所以真正上線的時候會發現,1萬條記錄之後,程式會不在執行,而且還不報錯

3.batch的一些使用細節,在迴圈中,statement或者preparestatement應將其放出迴圈以外,否則會造成執行完成後,僅有一條資料被提交;大批量的使用時,還應當每1000條記錄提交一次,這樣可防止記憶體的不足,以及減少與資料庫的連線次數來達到提升程式效率的目的

4.java heap space記憶體的溢位,這個原因我也沒有很清楚,但是可以肯定,在程式迴圈中如果有查詢的情況存在,應當封裝個方法來呼叫,否則會造成記憶體溢位的情況

ps:第四種情況,產生的情況只有兩種:a.記憶體確實不足,b.程式程式碼有問題;對於第一種的修改我覺得是不太靠譜的,資料的記錄量是不可控的,而記憶體加大隻能在一定範圍內加大,只能是治標不治本。一般程式碼進行完善可以滿足需求