海量數據-分批分段處理

海量數據-分批分段處理

前言

針對海量數據,在Mysql執行批量插入時,mysql5.7的客戶端默認是16M,服務端默認是4M,所以需要對數據進行分批分段處理。

代碼實現

List<String> updateData = new LinkedList<>();
updateData.add("1");
updateData.add("2");
updateData.add("3");
updateData.add("4");
updateData.add("5");
updateData.add("6");
updateData.add("7");
updateData.add("8");
updateData.add("9");
updateData.add("10");


//1.分頁數據信息
int totalSize = updateData.size(); //總記錄數
int pageSize = 3; //每頁N條
int totalPage = totalSize/pageSize; //共N頁

if (totalSize % pageSize != 0) {
    totalPage += 1;
    if (totalSize < pageSize) {
        pageSize = updateData.size();
    }
}
logger.info("循環批量更新的次數:{}",totalPage);
//2.分批次插入
for (int pageNum = 1; pageNum < totalPage+1; pageNum++) {
    int starNum = (pageNum-1)*pageSize;
    int endNum = pageNum*pageSize>totalSize?(totalSize):pageNum*pageSize;
    List<String> part = updateData.subList(starNum,endNum);
    System.out.println(part);
}

輸出結果

循環批量更新的次數:4
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
[10]

學習Java的同學注意了!!!
學習過程中遇到什麼問題或者想獲取學習資源的話,歡迎加入Java學習交流羣,羣號碼:543120397 我們一起學Java!

發佈了80 篇原創文章 · 獲贊 82 · 訪問量 37萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章