一次更新几百行是否实用或可行,还是有一种我不知道的批量更新技术?
我已经为这个问题做了一个谷歌,但它不断抛出结果,将多个UPDATE查询合并为一个。
正如您可以想象的那样,当发出超过300条更新语句的请求时,我宁愿不启动此操作并导致服务器出现问题。
答案 0 :(得分:1)
300更新语句应该不是问题。您只需使用update
:
update table t
set . . .
where . . .
如果桌面上有非常复杂的触发器,可能会出现问题。
通常,当数字达到数万时,您需要开始担心更新。然后,日志记录的开销和锁定表所花费的时间会对性能产生影响。
答案 1 :(得分:1)
300+没什么,我们在一个同步工作中更新了大约80k记录,它基本上是通过这样的连接来完成的
UPDATE table_1
INNER JOIN table_2 ON (table_1.DnameId = table_2.DNDOMAIN_ID)
SET
table_1.Label = table_2.DOMAIN_LABEL,
table_1.Extension = table_2.DOMAIN_EXTENSION
在你的情况下,
update table_name set column='value'
会顺利进行。
答案 2 :(得分:1)
300个语句可能看起来不是问题,但如果您有严格的SLA,则应该寻求优化解决方案。由于没有明确的信息可用作执行的性质(是批量作业?在线请求还是其他任何内容),我建议您在实施逻辑之前考虑以下方法。