Java基礎學習:java批處理教程

Java基礎學習:java批處理教程

長沙一度軟件培訓      2022-04-13 12:35:01     9

Java基礎學習:java批處理教程,  在處理一些與數(shù)據(jù)庫相關(guān)的操作的時候,通常把一些操作合并能夠起到優(yōu)化的效果,并且數(shù)量越大,批量執(zhí)行的效率比一條一條執(zhí)行

課程價格 請咨詢

上課時段: 授課校區(qū):

詳細介紹


  在處理一些與數(shù)據(jù)庫相關(guān)的操作的時候,通常把一些操作合并能夠起到優(yōu)化的效果,并且數(shù)量越大,批量執(zhí)行的效率比一條一條執(zhí)行的效率要快的多。


  批量插入比單次插入快


  比如有十條數(shù)據(jù)單條執(zhí)行需要操作十次數(shù)據(jù)庫,批量的話執(zhí)行一次數(shù)據(jù)庫的操作就可以。


  對應的sql語句:


  單次:INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....);


  INSERT INTO table_name (列1, 列2,...) VALUES (值3, 值4,....);


  批量:INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....),(值3, 值4,....);


  大家可以用sql直接去數(shù)據(jù)庫執(zhí)行做一下對比,在數(shù)據(jù)庫越大的時候,他們的速度對比越明顯。


  我原來做過sql數(shù)據(jù)導入,同樣的數(shù)據(jù)不同的sql,單次插入的執(zhí)行了800s,分批的50s內(nèi)完成。這只是一個大概的印象,大家可以自己做嘗試。


  批量插入的缺陷


  優(yōu)點是可以一次性插入很多條數(shù)據(jù),但是缺點也有,這個很多條數(shù)據(jù)是有限制的,不能無限大,數(shù)據(jù)庫太多的話數(shù)據(jù)庫直接報錯,導入執(zhí)行失敗,我記得提示的是(這條sql執(zhí)行數(shù)據(jù)大于2M,無法執(zhí)行),大概這樣的提示。


  所以為了效率,也為了保證程序的正常執(zhí)行,就需要分批的批量插入。


  比如一次要插入8000條數(shù)據(jù),數(shù)據(jù)庫受不了,那就一次插入500條。


  分批代碼

  //分批處理  if (CollectionUtils.isNotEmpty(allList)) {  int pointsDataLimit = 500;//定義分批大小  List newList = new ArrayList();  for (int i = 0; i < allList.size(); i++) {//分批次處理  newList.add(allList.get(i));  if (pointsDataLimit == newList.size() || i == allList.size() - 1) {  userDao.insertAllBy(newList);//批量插入  newList.clear();  }  }  }

  總結(jié):優(yōu)化既要保證效率,更要注重正確性。



  以上就是長沙一度軟件培訓java培訓機構(gòu)的小編針對“Java基礎學習:java批處理教程”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。


Java基礎學習

培訓啦提醒您:交易時請核實對方資質(zhì),對于過大宣傳或承諾需謹慎!任何要求預付定金、匯款等方式均存在風險,謹防上當。