MySQL存在則更新方法對比

MySQL存在則更新方法一般有以下幾種

  1. SELECT + UPDATE
  2. REPLACE INTO
  3. INSERT INTO … ON DUPLICATE KEY UPDATE

SELECT + UPDATE 是最傳統的一個,要對數據庫進行兩次操作。
REPLACE INTO 和 INSERT INTO ON DUPLICATE KEY UPDATE都是一次操作,表面看起來功能差不多,REPLACE INTO 還優勝些,因爲要短一些。
但是兩者還是有點區別的:
REPLACE INTO 等於 DELETE + INSERT INTO,如果表的主鍵是一個自增ID,那問題就來了,REPLACE INTO 會導致主鍵的值越來越大,如果溢出,將會導致數據無法插入。
而INSERT INTO ON DUPLICATE KEY UPDATE的實質卻是 if(EXISTS) UPDATE else INSERT INTO 的操作。
兩者的效率都不怎麼樣,道理很簡單,因爲一個人幹了兩個人的活嘛。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章