这篇文章主要讲解了如何实现MySQL事务及Spring隔离级别,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
1、事务具有ACID特性
- 原子性(atomicity):一个事务被事务不可分割的最小工作单元,要么全部提交,要么全部失败回滚。
- 一致性(consistency):数据库总是从一致性状态到另一个一致性状态,它只包含成功事务提交的结果
- 隔离型(isolation):事务所做的修改在最终提交一起,对其他事务是不可见的
- 持久性(durability):一旦事务提交,则其所做的修改就会永久保存到数据库中。
2、事务的隔离级别
1)隔离级别的定义与问题
- READ UNCOMMITTED(读未提交):事务的修改,即使没有提交,对其他事务也都是可见的。事务能够读取未提交的数据,这种情况称为脏读。
- READ COMMITTED(读已提交):事务读取已提交的数据,大多数数据库的默认隔离级别。当一个事务在执行过程中,数据被另外一个事务修改,造成本次事务前后读取的信息不一样,这种情况称为不可重复读。
- PEPEATABLE READ(可重复读):这个级别是MySQL的默认隔离级别,它解决了脏读的问题,同时也保证了同一个事务多次读取同样的记录是一致的,但这个级别还是会出现幻读的情况。幻读是指当一个事务A读取某一个范围的数据时,另一个事务B在这个范围插入行,A事务再次读取这个范围的数据时,会产生幻行。特别说明:InnoDB和XtraDB存储引擎通过多版本并发控制(MVCC,Multiversion Concurrency Control)解决了幻读问题,它使用间隙锁(next-key locking)锁定查询涉及的行和索引中的间隙,防止幻影行的插入。
- SERIALIZABLE(可串行化):这个事务是最高的隔离级别,它强制事务串行执行,避免了幻读问题。简单来说,SERIALIZABLE会在读取的每一行数据上都加锁,所以可能会导致大量的超时和锁竞争
隔离级别 | 脏读可能性 | 不可重复度可能性 | 幻读可能性 | 加锁读 |
READ UNCONMITED | Yes | Yes | Yes | No |
RED COMMITED | No | Yes | Yes | No |
REPEATABLE READ | No | No | Yes | No |
SERIALIZABLE | No | No | No | Yes |
2)如果查看修改和MySQL的隔离级别
show variables like 'tx_isolation'; # 查看隔离级别,MySQL8以前
show variables like 'transaction_isolation'; # 查看隔离级别,MySQL8
set global transaction_isolation='READ-COMMITTED'; // 设置隔离级别,阀域READ-UNCOMMITTED、READ-COMMITTED、REPEATABLE-READ、SERIALIZABLE
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容猜你喜欢
AI推送时光机如何实现MySQL事务及Spring隔离级别
数据库2024-04-02
MySQL事务及Spring隔离级别实现原理详解
数据库2022-05-18
【MySQL】事务及其隔离性/隔离级别
数据库2023-09-01
MySQL中的事务隔离级别如何实现
数据库2024-04-02
MySQL是如何实现事务的隔离级别
数据库2020-07-01
innodb如何实现事务隔离级别
数据库2024-04-02
MySQL事务隔离级别
数据库2024-04-02
mysql如何实现隔离级别
数据库2024-04-02
mysql如何修改事务隔离级别
数据库2024-04-02
mysql如何查看事务隔离级别
数据库2024-04-17
mysql如何查询事务隔离级别
数据库2024-04-02
mysql数据库事务及隔离级别
数据库2021-09-18
mysql事务隔离的级别
数据库2024-04-02
MySQL的事务隔离级别
数据库2021-07-07
MySQL 事务的隔离级别
数据库2019-01-27
MySQL事务与隔离级别如何使用
数据库2023-07-05
MySQL事务和MVCC怎么实现隔离级别
数据库2024-04-02
mysql中如何修改事务隔离级别
数据库2024-04-02
MySQL事务、隔离级别及MVCC是什么
数据库2022-11-30
咦!没有更多了?去看看其它编程学习网 内容吧