2014-02-08 148 views
1

通常情况下,有10个线程使用不同的连接进行1次更新,或者有一个连接进行10次更新,在一个线程中,一个接一个地更好?MySQL在这种情况下的表现?

在所有情况下,最终都会发生COMMIT

+0

在单线程版本中,在所有10的末尾是否存在COMMIT,或者在每次更新后是否存在COMMIT? – Bohemian

+0

最后..... –

回答

1

最好是涉及到有一个线程执行10次更新,然后单最后提交。

的原因是:

  • 有相当大的努力数据库启动和提交事务。如果你在一次交易中完成所有操作,只需支付一次这笔费用
  • 执行查询所涉及的通信非常“健谈” - 大多数通信涉及准备好运行和整理。更新查询本身的通信量会很小。如果你只有1个通信会话您节省大量的通讯科开销
  • 大多数执行查询的努力,在安全性,权限,语法检查等的二次问题 - 做实际的数据操作。使用一个会话将节省至少一些多重会话会导致的重复努力

但是,最好的办法是简单地以尽可能实际的方式测试两个选项。

1

是它最好有10个线程具有不同的连接做1次更新,如果每个 线程不需要是seriality每个更新单独的表

+0

如果仅CPU数量超过10个 – ravnur