mysql UPDATE比INSERT INTO更快吗?

时间:2010-07-14 22:58:21

标签: mysql performance insert sql-update

这更像是一个理论问题。

如果我正在运行50,000个插入新行的查询,以及50,000个更新这些行的查询,哪一个会花费更少的时间?

4 个答案:

答案 0 :(得分:5)

插入会更快,因为有了更新,您需要首先搜索要更新的记录,然后执行更新。

虽然这似乎不是一个有效的比较,因为你永远无法选择插入或更新,因为两者填补了两个完全不同的需求。

编辑:我还应该补充一点,假设没有插入触发器或其他可能导致潜在瓶颈的情况。

答案 1 :(得分:4)

Insert Operation : Create  -> Store

Update Operation : Retrieve -> Modify -> Store

更快插入操作。

答案 2 :(得分:1)

通过插入同一个表,您始终可以使用一个查询插入所有行,这比逐个插入要快得多。更新时,您可以一次更新多行,但不能将其应用于每个更新情况,并且通常您必须一次运行一个更新查询(更新特定ID时) - 并且在大表上这是非常的慢慢必须找到行,然后每次更新它。根据我的经验,即使你已经将表编入索引,它也会变慢。

答案 3 :(得分:0)

除此之外,不要忘记通过加载更多插入而不是更新,当您选择时会有更多行,因此您将减慢读取操作的速度。

那么真正的问题就变成了 - 你更关心什么,快速插入还是快速阅读。同样,这取决于某些因素 - 特别是(尚未提及)数据库引擎,例如InnoDB(现在在PHPMyAdmin中是标准的)。

我同意其他所有人的意见 - 在个案基础上要考虑太多,因此你真的需要根据自己的需要运行自己的测试并从那里评估情况。