1

我在 SQL 中使用的脚本处理了近 40,000 条记录,我注意到当我使用 UPDATE 命令时执行时间大大增加

在 2 个表中,每个表都有 10 个字段,INSERT 比这个 UPDATE 命令执行得更快

UPADTE table1
INNER JOIN table2 ON table1.primarykey = table2.primarykey
SET table1.code = table2.code

实际上 UPDATE 所做的是将代码从一个表复制到另一个存在相同记录的表中,这是因为 table1 是两个数据库之间的临时表,而 table2 是一个拥有表,用于在多个表中插入临时表的数据,两个表都有相同数量的记录约为 40,000

现在对我来说,UPDATE 应该执行得更快,考虑到它只连接 2 个相同的表并为 1 个字段插入数据,它应该比 2 个 INSERTS 运行得更快,其中在 10 个字段上创建了 40,000 条记录(换句话说,插入 800,000 条数据),我在 SQL 控制台窗口中运行查询以避免 php 超时

UPDATE 是否比 INSERT 更需要资源,有什么方法可以让它运行得更快(除了改变我使用单独的表进行处理的事实,临时表更新频繁,所以我像快照一样复制数据并使用也就是说,代码字段一开始是 NULL,所以我只复制具有 NULL 代码的记录,这意味着代码不是 NULL 的记录已经被处理过)

4

1 回答 1

2

那个 UPDATE 命令是实际的 SQL 吗?因为您需要一个 WHERE 子句来避免更新表中的每条记录...

此外,INSERT 不需要首先从 2 个连接表中查找要更新的记录。

于 2012-08-16T03:46:11.320 回答