MySQL INSERT VS UPDATE

时间:2014-06-03 10:54:03

标签: mysql

我需要从合作伙伴的服务器检索大约60,000多个MySQL记录并将其保存到我的数据库中。我的脚本需要每天3次(60K + X 3)

哪一个更好更快

DELETE ALL Records from my DB -> Retrieve Records from Partner DB -> Insert Records to my DB

OR

Retrieve records from partner DB -> Update my DB records (if exist) / INSERT (if not exist)

注意:如果UPDATE,我需要更新记录的所有字段

3 个答案:

答案 0 :(得分:0)

绝对是第二个

  

从合作伙伴数据库中检索记录 - >更新我的DB记录(如果存在)/ INSERT(如果不存在)

删除是一项代价高昂的操作,尤其是当你有一个60k +记录的案例,并考虑到架构保持相同的加班时间,只有值会改变。

此外,从这个角度考虑,如果更新,那么并非所有值都可能不需要更新,只有一些 ....所以这比删除和再次写入值相对便宜,甚至可能包含您刚刚删除的一些相同的值! :)

不要仅从delet的角度考虑它,还要考虑你也必须 Update 这个数据库......你会怎样?更喜欢,总是更新60k +或更低......

答案 1 :(得分:0)

根据我的观点,第二种方法比第一种方法更快。因为如果记录已经存在,那么它将从插入中跳过该记录。

答案 2 :(得分:0)

您提出的两个操作序列 NOT equivalent 。 第二个操作序列不会删除从伙伴DB中删除的行,而第一个序列会删除它们。

MySQL提供REPLACE statement,它与第二个序列的效果相同,并且可能是最快的序列。对您的代码进行基准测试以确保。