首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >执行多条UPDATE语句的正确方式是什么?

执行多条UPDATE语句的正确方式是什么?
EN

Stack Overflow用户
提问于 2012-11-04 06:14:02
回答 2查看 74关注 0票数 1

我有一个服务器,它发送多达20个UPDATE语句到一个单独的MySQL服务器每3-5秒为一个游戏。我的问题是,将它们连接在一起是否更快(UPDATE;UPDATE;UPDATE)。在事务中执行这些操作是否比提交事务更快?单独执行每个UPDATE会更快吗?

任何有见地的人都将不胜感激!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-04 06:20:27

这在某种程度上取决于服务器的连接方式。如果服务器之间的连接是持久的,那么您可能看不到连接语句和多个单独语句之间的很大区别。

但是,如果执行涉及建立连接、执行SQL语句,然后断开连接,则通过一次执行多条语句可以节省数据库服务器上的大量资源。建立连接的过程往往是昂贵和耗时的过程,并且由于机器是分开的,因此增加了DNS解析的开销。

对我来说,建立连接、开始事务、单独执行语句、提交事务并断开与数据库服务器的连接是最合理的。在这种情况下,是将所有UPDATE语句作为单个连接还是作为多个单独的语句发送,可能不会有太大区别,特别是如果这只是涉及这两个服务器之间的常规通信,并且您不需要期望它随着用户负载而扩展。

事务的使用假设您的UPDATE语句的3-5秒周期性突发在某种程度上是逻辑相关的。如果它们不是相互依赖的,那么您可以跳过节省一些资源的事务。

对于任何关于性能的问题,最好的答案是,如果您当前的系统满足了您的性能和伸缩需求,那么您还不应该过多地关注微优化。

票数 1
EN

Stack Overflow用户

发布于 2012-11-04 06:33:20

将这些更新封装到单个事务块中总是更快。这样做的代价是,如果块中的任何东西都失败了,那就是什么都没有发生--你将不得不再次重复你的工作。

另外,请记住,只有在使用InnoDB引擎时,MySQL中的事务才能工作。

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

https://stackoverflow.com/questions/13214014

复制
相关文章

相似问题

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