首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql UPDATE语句-相同值的开销?

问mysql UPDATE语句-相同值的开销?
EN

Stack Overflow用户
提问于 2010-07-06 22:06:58
回答 3查看 5.6K关注 0票数 13

我有一个包含数十万条记录的大型MYSQL数据库。我想要更新其中的大量字段,但我不知道该字段是否已更新。

如果我调用一个update语句,将authortype=10和AuthorType值设置为10,这是否比执行一个单独的查询来只选择那些不是authortype=10的,然后更新它们更快?

换句话说,如果我将一个值设置为等于它已经存在的值,这是否比我将一个值更新为新的值更快?再一次,这是与吨和吨的记录,我想要有效率。

提前感谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-07-06 22:20:57

为什么不直接使用

代码语言:javascript
复制
UPDATE  dbo.Authors
SET     AuthorType = 10
WHERE   AuthorType <> 10

两全其美。

请注意,对于任何现代数据库引擎来说,几十万条记录应该不会造成问题。

次要编辑

票数 9
EN

Stack Overflow用户

发布于 2010-07-06 22:22:38

不,MySQL很聪明,不会比慢。不要费心去检查它,MySQL会帮你做的。

如果将列设置为其当前值,MySQL会注意到这一点,并且不会更新它。不执行任何写入操作。(Source)

但,

MySQL可以在要更新的列上使用WHERE子句来确定要使用哪个索引(以及要检查哪些行),在这种情况下,它可能会加快更新操作的速度。如果您的列已建立索引,请务必将其包括在中。

票数 16
EN

Stack Overflow用户

发布于 2010-07-06 22:25:50

如果您的表包含数十万行,则不值得担心需要多长时间。做决定的时间会比做决定的时间要长得多。

如果有数亿行数据,情况可能就不同了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3186908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档