2014-02-08 185 views
1

通常情況下,有10個線程使用不同的連接進行1次更新,或者有一個連接進行10次更新,在一個線程中,一個接一個地更好?MySQL在這種情況下的表現?

在所有情況下,最終都會發生COMMIT

+0

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

+0

最後..... –

回答

1

最好是涉及到有一個線程執行10次更新,然後單最後提交。

的原因是:

  • 有相當大的努力數據庫啓動和提交事務。如果你在一次交易中完成所有操作,只需支付一次這筆費用
  • 執行查詢所涉及的通信非常「健談」 - 大多數通信涉及準備好運行和整理。更新查詢本身的通信量會很小。如果你只有1個通信會話您節省大量的通訊科開銷
  • 大多數執行查詢的努力,在安全性,權限,語法檢查等的二次問題 - 做實際的數據操作。使用一個會話將節省至少一些多重會話會導致的重複努力

但是,最好的辦法是簡單地以儘可能實際的方式測試兩個選項。

1

是它最好有10個線程具有不同的連接做1次更新,如果每個 線程不需要是seriality每個更新單獨的表

+0

如果僅CPU數量超過10個 – ravnur