首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >组合两个更新命令-性能?

组合两个更新命令-性能?
EN

Stack Overflow用户
提问于 2010-05-19 05:52:01
回答 4查看 91关注 0票数 3

如果我想要更新MySQL表中的两行,使用以下两个命令:

代码语言:javascript
复制
UPDATE table SET Col = Value1 WHERE ID = ID1

UPDATE table SET Col = Value2 WHERE ID = ID2`

我通常将它们组合到一个命令中,这样我就不必从C客户机与MySQL服务器联系两次:

代码语言:javascript
复制
UPDATE table SET Col = IF( ID = ID1 , Value1 , Value2) WHERE ID=ID1 OR ID=ID2

这真的是性能上的提升吗?

背景信息:我正在使用一个定制的完全用C编写的高性能、高负载的high服务器。

EN

回答 4

Stack Overflow用户

发布于 2010-05-19 06:44:31

单个服务器请求通常是一个好主意,因为客户端和服务器之间的往返通常是许多查询中代价最高的部分(正如Hartung已经指出的那样)。

但是,检查该特定查询的优化可能很有用。条件id = id1 or id = id2听起来像是要使用范围搜索(参见OR Relations)。我不完全确定,但可能会导致从ID1ID2的索引扫描,如果它们在索引中逻辑上“相距很远”,这可能会很昂贵。使用IN运算符where ID in (ID1, ID2)可能更有效。或者可能使用两个单独的语句。

票数 1
EN

Stack Overflow用户

发布于 2010-05-19 05:55:11

将其作为基准。从理论上讲,它更快,但它可能在您不知情的情况下(通过编译器或其他东西)在其他地方进行优化,并且在实践中不会有什么不同。

票数 0
EN

Stack Overflow用户

发布于 2010-05-19 05:55:28

这是否会表现得更好将取决于您的设置。我们可以猜测,但只有分析查询时间才能告诉您哪个更好。

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

https://stackoverflow.com/questions/2861411

复制
相关文章

相似问题

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