个人对mysql的只读事务理解
1. 开启方式
start transaction read only
select * from ....
select * from ....
commit;
2. 开启只读事务模式之后,事务期间任何insert或者update都是不允许的
3. 那么问题来了 ,这个和不开事务有什么区别?
区别还是有的,如果使用的是默认的事务隔离级别“可重复读(rr:reaptable read)”,那么在只读事务开启后,如果重复读取某表数据,那么结果是一致的,并不会受到事务外其他数据的提交影响
比如:
# user表中有 张三、李四 两条记录
# session 1
start transaction read only;
select * from user; # 得到2条记录
# ======= session 2 ========
insert into user ('王五');
# ==========================
select * from user; # 依然得到张三、李四
commit;