【MySQL插入更新重復值】ON DUPLICATE KEY UPDATE用法


要插入的數據  與表中記錄數據惟一索引或主鍵中產生重復值,那么就會發生舊行更新

弊端:造成主鍵自增不連續。適合數據量不大的表。

ON DUPLICATE KEY UPDATE后面的條件

eg有如下表,僅主鍵存在UK(唯一)屬性:

select * from Student

id  name    age
1	jack	20
2	rose	21

insert into Student ( id,name) values (1,'jack') ON DUPLICATE KEY UPDATE name = 'tom',age=40;
select * from Student;

id  name    age
1	tom	40
2	rose	21

 

end

=======================================================================

個人記錄日記:

千萬條數據量,根據UK進行更新或插入,耗時較久,於是思考優化的思路:

1、在UK字段建立索引(查明ON DUPLICATE KEY UPDATE是否用的到索引)

2、拆成根據UK字段查詢,根據查詢結果判斷后再進行插入和更新操作。這里耗時最大的操作是查詢操作,所以查詢仍需在UK字段建立索引。

以及多線程下同步以上原子操作。

 

過程中好奇sql的執行過程,查了一下資料:

https://www.cnblogs.com/yuyue2014/p/3826941.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM