php - SQL更新大量行

标签 php mysql sql

我需要更新大量的行,比如 100,000。 可能一个查询对服务器来说过于繁重。

拆分更新的最佳方式是什么? 比如更新 200 行,休眠一秒钟,然后再更新 200 行。

编辑:

好的,我得到的答案是可以在一个查询中执行此操作。 但我仍然想知道如何做到这一点。 假设我有 1,000,000 行或更多行。 拆分查询的最佳方式是什么?

最佳答案

除非有您没有告诉我们的约束,否则在一个查询中更新所有内容是最好的解决方案。

因为服务器过载而考虑拆分东西似乎没有实际用处。想想你自己的解决方案和数字。如果您有 100 万个数据集,您尝试一次更新 200 个,然后休眠一秒钟,您最终会进行 5000 次更新并花费 83.3 分钟等待服务器完成此任务,这还不包括花费的时间执行查询,这可能非常快。

基本上,您会知道或选择数据库中的所有 ID,并通过使用带有 UPDATE 的适当 WHERE 子句为每个 ID 或组发送查询。

除非我们对场景了解更多,否则无法回答这个问题。它涉及针对非常个性化的使用模式优化内容,没有任何解决方案可以适用于所有地方。

关于php - SQL更新大量行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13167665/

相关文章:

MySQL在更新表时将字符串日期转换为日期格式

mysql - 在 MySQL 查询中排除星期几中的时间

sql - Oracle 创建触发器语句失败并出现内部错误代码 ORA-00600

java - 如何使用映射管理器将 java.sql.Date 存储在 cassandra 日期字段中?

php - 我如何在 laravel 表单操作中传递带有路由的变量?

php:在数据库中存储图像

具有权限结构的PHP网站

java - 如何将字符串从Android发送到php

mysql - Spring:在项目中设置 MySQL 数据库

c# - 在 linq to sql c# 中获取具有一个 id 的两行