最近公司在做專案的時候用到mongo資料庫 因為資料量比較大,所以需要優化的地方比較多,其中批量更新花了我很多的時間 特記錄一下 備忘!
這裡我用到spring-data-mongodb的版本是 2.0.7
spring的版本是5.0.7 這裡需要注意下 spring 5才能和spring-data-mongodb 2相容
還有個需要注意的地方是 spring5和log4j的2版本相容 和1已經不相容了
spring-data-mongodb 1版本在網上有很多的批量更新方法 我這裡就不贅述了
spring-data-mongdb 1版本的批量更新
廢話不多說 上**
首先獲得組裝list>
@override
public int batchupdate(listfrankpos) throws illegalacces***ception
document query = new document(mac ,frankpo.getmac());
mapobjectmap = objectreflectionutil.getobjectmap(frankpo);
// 更新語句 比如:
document update = new document();
for (map.entryentry : objectmap.entryset())
// 這裡update需要再次包裝 包裝後形成語句} systemconstant.mongo_set = "$set"
updates.add(new updatemanymodel(query,new document(systemconstant.mongo_set,update),uo));
}return super.batchupdates(updates);
}
然後去dao執行sql
protected int batchupdates(list> updates)
至此,批量更新也就結束了 其實這也就是我們自己去組裝sql執行的方式 Mysql update join 單錶批量更新
mysql 的批量插入比較便利,批量更新就有點難受了。這裡記錄一下,使用update join 對mysql單錶的批量更新操作。更具表中content id和outeach id字段改變sort的值,不要問為啥不用id,業務需要。如下圖。有一招update join update 表a a join...
MySQL 避免重複資料的批量插入與批量更新
我們在向資料庫裡批量插入資料的時候,會遇到要將原有主鍵或者unique索引所在記錄更新的情況,而如果沒有主鍵或者unique索引衝突的時候,直接執行插入操作。這種情況下,有三種方式執行 直接每條select,判斷,然後insert,毫無疑問,這是最笨的方法了,不斷的查詢判斷,有主鍵或索引衝突,執行u...
Oracle根據符合條件的資料迴圈批量更新
批量對符合條件的表記錄進行更新 aa代表查詢出的符合條件資料的別名 aa後的表示需要符合的條件 loop後開始寫更新操作 單錶更新隨機數 批量對符合條件的表記錄進行更新 aa代表查詢出的符合條件資料的別名 aa後的表示需要符合的條件 loop後開始寫更新操作 多個表匹配 更新到另乙個表中 begin...