我有一个服务器,每3-5秒为一个游戏向一个单独的MySQL服务器发送多达20条UPDATE语句。我的问题是,将它们结合在一起是否更快(UPDATE;UPDATE;UPDATE)。在事务中执行它们然后提交事务是否更快?单独完成每个UPDATE是否更快?
任何洞察都将不胜感激!

最佳答案

这在某种程度上取决于服务器的连接方式。如果服务器之间的连接是持久的,那么在连接语句或多个单独语句之间可能看不到很大的区别。
但是,如果执行过程涉及建立连接、执行SQL语句、然后断开连接,则可以通过一次执行多个语句来节省数据库服务器上的大量资源。建立连接的过程往往是一个昂贵且耗时的过程,并且由于机器是独立的,因此增加了DNS解析的开销。
对我来说,建立连接、开始事务、单独执行语句、提交事务并断开与数据库服务器的连接是最合乎逻辑的。无论您是将所有UPDATE语句作为单个连接还是多个单独的语句发送,在这种情况下都可能不会有太大的区别,特别是如果这只涉及到这两个服务器之间的常规通信,并且您不需要期望它随着用户负载的增加而扩展,例如。
事务的使用假设您的3-5秒周期性UPDATE语句突发在某种程度上是逻辑相关的。如果它们不相互依赖,则可以跳过事务以节省一些资源。
与任何有关性能的问题一样,最好的答案是,如果您当前的系统满足您的性能和扩展需求,那么您现在不应该过分关注对它的微观优化。

关于mysql - 做多个UPDATE语句的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13214014/

10-12 12:26
查看更多