【发布时间】:2012-04-22 23:45:46
【问题描述】:
我有两张大桌子。如果 productid 和 userid 匹配,我想用第一个表更新第二个表中的所有字段,如果不存在则插入新字段。 JOIN 会比简单的 UPDATE 更好吗?替换成怎么样?有人可以帮助我做出最佳决策吗?因为桌子很大。
谢谢。
【问题讨论】:
-
大量数据记录(约 1000 亿条)和许多用户一次执行相同的功能。
-
嘿,这可能不是最好的解决方案,但我会为此使用 2 个查询,第一个更新所有字段(如果存在),然后第二个插入不存在的字段。
-
我认为这里的一个大问题是您是否可以在进行更新时停止数据库。由于您也可能使用 php,因此在 sql 中使用 limit 子句并让 php 一次执行多个记录以避免数据库在完成处理之前完全锁定可能是一个想法。
-
我会使用 Joshua 的解决方案,但使用子查询,所以一切都将在 SQL 中完成,因此无需“停止”数据库。不过,不确定如何进行此查询。