【发布时间】:2020-03-05 21:50:27
【问题描述】:
我需要在 MySQL 表中更新 10,000 行,并且我需要为每一行更新一组不同的列(例如,有些行需要更改用户名,有些行需要更改电话号码,还有一些行都需要更改)。我需要能够在 10 分钟内更新这 10,000 行,这就带来了问题:
我目前正在为每一行执行单独的更新查询(使用 PDO),通过 10,000 个单独的查询更新 10,000 行所需的时间太长。我之前使用“批量插入”来加快插入 10,000 行的速度,但我可以做些什么来加快更新部门的性能?
【问题讨论】:
-
您可能需要考虑获取所有行,在 PHP 中修改它们,然后删除并重新插入这些行。如果您采用这种方法,请务必进行备份...
-
@Nick 我考虑过,但客户说这是不行的。您是否知道任何其他可以加快流程的选项?
-
另一种选择可能是将新数据(与旧数据合并)写入另一个表,然后在旧表上使用多表更新查询
-
你和 tylerkmw 在同一个项目上工作吗? stackoverflow.com/questions/60554294/…