我之前一般都是开事务的,但是后来发现其实大多数情况下,业务需求并不需要保证 Repetable Read 。MySQL RR 级别下,只读操作不开启事务,可以看成效果和 RC 级别一样吗?
1 kingcanfish 2022-03-08 23:36:52 +08:00 只读操作是指 mysql 所有的数据都是只读的 还是指 单个业务只读?前者的话当然可以不需要 后者的话 不行 你还要保证其他 业务的操作 不对当前读操作造成影响 |
![]() | 2 visitant 2022-03-09 02:42:01 +08:00 这要看具体的业务场景了,这种问题肯定是由业务决定 |
![]() | 3 wangyu17455 2022-03-09 03:11:21 +08:00 via Android 不开的话,一条 sql 一个事务会不会影响性能?不是很懂 |
4 jorneyr 2022-03-09 07:43:50 +08:00 一次执行 100 条 select 开启事务和不开启事务效率差别还是比较大的,写程序测试过。 |
6 simonlu9 2022-03-09 09:02:16 +08:00 ![]() 读也是有开事务的,只是 mysql 默认是 autocommit,你不需要手动标记事务开始与结束而已 |
7 yibo2018 2022-03-09 10:34:44 +08:00 @simonlu9 可重复读的事务级别下,读没有事务好吧,除非你加上 for update 这种 X 锁,或者 S 锁 update 才会默认 autocommit |