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

@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.00 sec)

3. 删除内容

mysql> delete from test where id=1;

ERROR 1792 (25006): Cannot execute statement in a READ ONLY transaction.

报错,只读事务不支持删除内容。

4. 手动修改内容后再读取

mysql> update test set name = ‘ganbo’ where id=1;

Query OK, 1 row affected (0.02 sec)

Rows matched: 1 Changed: 1 Warnings: 0

mysql> select * from test where id=1;

+—-+———-+

| id | name |

+—-+———-+

| 1 | zhangsan |

+—-+———-+

1 row in set (0.00 sec)

只读事务内被修改的内容,感知不到。

总结

只读事务的好处,作为ORM框架优化的暗号,保证读一致性,事务内不允许DML操作。

只读事务的场景,如统计,保证统计结果准确性。

缺点,使用事务,动态生成代理类,增加开销。

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

  1. 只读事务是否做无用功?

    有时候,我们会看到代码里面,有如下语句: @Transactional(ReadOnly=true) 是不是没有用处呢? 其实是有用处的,mysql支持只读事务的. 只读事务内,不能增加.修改.删除内 ...

  2. mysql 2006测试_狂神说MySQL06:事务和索引

    狂神说MySQL系列连载课程,通俗易懂,基于MySQL5.7.19版本,欢迎各位狂粉转发关注学习.禁止随意转载,转载记住贴出B站视频链接及公众号链接! 上课视频同步文档 事务和索引 事务 什么是事务 ...

  3. Mysql 面试常问4 -- 锁模块之事务并发访问产生的问题以及事务隔离机制 InnoDB支持事务

    锁模块之数据库事务的四大特性 数据库事务的四大特性和程序事务的四大特性基本相同 ⑴ 原子性(Atomicity) 原子性,这个是最简单的.说的是一个事务内所有操作共同组成一个原子包,要么全部成功,要么 ...

  4. 注解mysql事物管理_Spring 使用注解方式进行事务管理

    事务的传播行为和隔离级别 大家在使用spring的注解式事务管理时,对事务的传播行为和隔离级别可能有点不知所措,下边就详细的介绍下以备方便查阅. 事物注解方式: @Transactional 当标于类 ...

  5. mysql事务处理是悲观锁还是_数据库事务的悲观锁和乐观锁

    转载出处:http://www.hollischuang.com/archives/934 在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数 ...

  6. MySQL数据库基础到进阶笔记整理包含事务、SQL优化、锁等内容

    写在前面 本文是在学习MySQL数据库时整理的笔记,可供初学者学习 是在https://dhc.pythonanywhere.com/entry/share/?key=12e4a7324f68371d ...

  7. mysql view 能和表关联吗_MySQL 事务隔离及实现,赶快码上收藏!满满干货

    前言 写文不易,欢迎大家一起交流,喜欢文章记得关注我点个赞哟,感谢支持!(文末还有福利与彩蛋哦!) 1. 事务的 ACID 特性 Actomic,原子性:一个事务中的所有操作,要么全部完成,要么全部失 ...

  8. mysql当前时间减一分钟_MySQL数据库事务的机制【总结】

    php中文网最新课程 每日17点准时技术干货分享 这几天面试多次被问到了数据库事务机制.隔离级别.乐观锁悲观锁类的问题,之前对这些只能说有所了解,有些概念还停留在记忆层面,没有理解,所以回答的不好.后 ...

  9. mysql里hdr是什么的缩写_MySQL事务之-2

    在上一篇中我们提到了MySQL的事务特性,这一片主要讲述事务的实现. 事务的隔离性由锁来实现.原子性,一致性,持久性通过数据库的redo和undo log来实现. redo恢复提交事务修改页的操作,而 ...

最新文章

  1. 启动Mysql时发生的一个关于PID文件错误问题
  2. SpringMVC框架--学习笔记(下)
  3. esp8266 接收udp广播_ESP8266_21基于ESP8266的一键配网
  4. 基于jquery类库的绘制二维码的插件jquery.qrcode.js
  5. oracle+solaris+密码,Oracle Solaris 10回滚补丁文件密码哈希泄露漏洞
  6. 小红书成立六周年内部信:月活用户量已经突破8500万
  7. 【廖雪峰官方网站/Java教程】多线程(3)
  8. 【漫画】兔子,胡萝卜和屎
  9. 常用的公共 DNS 服务器 IP 地址
  10. 计算机游戏 ppt背景图片,课件背景图片大全
  11. Low-Light Enhancement 数据集 和 论文代码
  12. 社旗一高2021高考成绩查询,2021年九师联盟:河南/山西省高三年级下学期5月联考分数线公布!...
  13. 2021Java最新技术发展趋势
  14. will do 和 will be doing的区别
  15. 023 Rust死灵书之并发、竞争
  16. 段永平回应一切:从未遥控OV,黄峥不是弟子,靠营销不能持久
  17. pycharm如何使用?
  18. u盘装系统学计算机好,大家说最好的u盘装系统工具是哪一个
  19. 山东大学2019-2020数据仓库与数据挖掘期末考试
  20. Python之代码规范管理工具(pylint、black)

热门文章

  1. Mask2Former源码解析
  2. php 邮箱管理软件,Tmail 一个非专业的强大的小型邮件管理工具,用来读取 列表数据发送大量的 ,简单 WEB(ASP,PHP,...) 256万源代码下载- www.pudn.com...
  3. 业余爱好者想入门编程,一定远离那些只会说No的家伙,尤其程序员
  4. 学什么技术专业最有前途?
  5. 41-构造函数/析构函数
  6. 香港网络新危机:黑客入侵网上银行账户买卖股票
  7. 解决GitHub频繁要求verify email的问题
  8. 2020-10-21 ubuntu 打包解包压缩解压tar gz bz2 tar.Z tgz rar lha格式
  9. 生化危机绝密报告2java,生化危机-绝密任务V2.1
  10. 回顾去哪儿的这些年,最让我骄傲的是收获了这9点管理心得