定期更新约1000条数据,存在就更新,不存在就插入。

那么,怎样处理好?
1.一条条查询,存在就更新,不存在就插入?
2.先全删除,直接插入?

更新的字段有几个,且无索引。

阅读 3.7k
5 个回答

请参考这个链接。

UPSERT语义很多数据库都支持。比如SQL Server的merge,或者Postgresql的insert on conflict update

可以把这些丢到队列,然后跑队列,执行失败记得打日志。

这两种方式感觉都可以,具体效率问题得看你的数据具体情况了,如果想知道具体那种方法好,不如直接利用真实数据做一下测试,分别用两种方法看看sql执行的时间。

INSERT INTO table (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE c=c+1;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题