mysql只读事务不分配事务id_只读事务是否做无用功?

有时候,我们会看到代码里面,有如下语句:

@Transactional(ReadOnly=true)

是不是没有用处呢?

其实是有用处的,mysql支持只读事务的。

只读事务内,不能增加、修改、删除内容,否则报Cannot execute statement in a READ ONLY transaction。

只读事务内,只能读取到执行时间点前的内容,期间修改的内容不能读取到。

只读事务作为ORM框架优化执行的一个暗号,比如放弃加锁,或者flush never。

mysql5.6验证过程如下:

1. 建表

create table test(

id int not null default 0,

name varchar(10) not null default ”

) engine=innodb default charset=utf8;

insert into test values (1,’zhangsan’);

2. 开启只读事务

mysql> start transaction read only;

Query OK, 0 rows affected (0.00 sec)

mysql> select * from test where id=1;

+—-+———-+

| id | name |

+—-+———-+

| 1 | zhangsan |

+—-+———-+

1 row in set

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值