一般来说,是让 10 个具有不同连接的线程每个执行 1 次更新,还是让一个连接在一个线程中一个接一个地执行 10 次更新更好?
在所有情况下,COMMIT
最终都会发生。
最佳答案
最好让一个线程执行 10 次更新,然后在最后执行一次提交。
原因是:
- 数据库需要付出相当大的努力才能启动和提交事务。如果您在一次交易中完成所有操作,只需承担一次此费用
- 执行查询所涉及的通信非常“冗长”- 大多数通信都涉及准备运行和整理。围绕更新查询本身的通讯会非常小。如果您只有 1 个通信 session ,则可以节省大量通信开销
- 执行查询的大部分工作都在安全性、权限、语法检查等次要问题上 - 不进行实际的数据操作。使用一个 session 至少可以节省多个 session 可能产生的重复工作
但是,最好的办法是尽可能以真实的方式简单地测试这两个选项。
关于MySQL 在这种情况下的性能如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21644639/