基本上,问题是:
在使用 InnoDB 的默认 MySQL 配置中,在事务中插入和更新比在两个单独事务中的相同操作更快。
我的假设是在交易中它应该更快,但是如果有人可以举例说明它是否真的更快以及为什么会更好。
我相信答案取决于工作量,因此在哪些情况下单个事务应该更快,在哪些情况下两个事务应该更快。
使用哪个 MySQL 版本是否重要?有什么影响这个的选择吗?
对于这个简单的案例,我会说它更快。当大事务中的操作数量很大时,它可能会变慢。
它还取决于配置。在 5.5 和更早版本中,将innodb_flush_log_at_trx_commit保留为默认值 1 会对每个事务造成真正的惩罚,并且在事务之外执行插入 + 更新实际会导致两个单独的事务和两个单独的刷新记录。在 5.6 中,这更快。