我們最簡單的想法就是先查詢一下,看看這個物件有沒有在,如果在,就更新或者刪除,或者忽略,如果不在就插入,但是對於資料處理來說,這個可能就有點浪費效能了,而且我們學習的也是批量儲存比單一儲存要快,單一儲存30ms,批量儲存10個40ms,批量儲存越大,他們兩個的差距就越大,又有人提出了select in ,我們批量的去查詢,看看鍵在沒在我們批量資料的陣列裡面,找到在的就忽略掉,確實時間可以快一點,但是處理麻煩,接下來,就要放大招了!
mysql 有乙個特性的儲存 on duplicate key update,有就update,沒有就更新,當然如果你想忽略就不在更新的地方寫東西不就行了,如果你想替換,就將所有的字段更新一遍
關於如何使用,什麼例子都不如官網
mysql語句會了,再來點配菜
peewee框架對該語句的支援
on_conflict 可以配置重複就更新
on_conflict_ignore 配置重複就忽略
on_conflict_replace 配置重複就替換
9000行資料去重 800ms
44000行資料1-2s,
MySQL去重插入方法
向資料庫插入資料,希望去重插入。一般去重插入有兩種策略 重複不插入 重複則替換 更新 準備表 create table user info id int 11 notnull comment id username varchar 50 character set utf8 collate utf8...
集合去重,高效演算法
我們最常用的兩個集合去重的方法是removeall,但是當兩個集合達到上萬之後就已經很慢了,上百萬之後,處理速度更是令人難以忍受,處理時間超過10分鐘以上,測試 如下 public class test for int i 500000 i 1500000 i system.out.println ...
Mysql高效插入 更新資料
從tushare抓取到的財務資料,最開始只是想存下來,用的辦法想簡單點,是 插入 報錯 update 但發現這個方法太蠢,異常會導致大量無效連線,改為 for idx,row in d2.iterrows try rs db.getdata select f code,f time,s from c...