如何实现MySQL事务及Spring隔离级别
短信预约 -IT技能 免费直播动态提醒
这篇文章主要讲解了如何实现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
如何实现MySQL事务及Spring隔离级别
下载Word文档到电脑,方便收藏和打印~
下载Word文档
猜你喜欢
2024-04-02
MySQL事务及Spring隔离级别实现原理详解
1、事务具有ACID特性原子性(atomicity):一个事务被事务不可分割的最小工作单元,要么全部提交,要么全部失败回滚。一致性(consistency):数据库总是从一致性状态到另一个一致性状态,它只包含成功事务提交的结果隔离型(iso
2022-05-18
2023-09-01
2024-04-02
MySQL是如何实现事务的隔离级别
摘要本文旨在了解MySQL InnoDB引擎如何支持事务的隔离级别。文章主要内容分两个部分。第一部分阐述数据库的并发问题以及为之产生的ANSI SQL 标准隔离级别。第二部分根据 MySQL 官方文档解释 InnoDB 是如何支持这些隔离级别的。数据库事务的并
2020-07-01
2024-04-02
2024-04-02
2024-04-02
2024-04-02
mysql如何查看事务隔离级别
要查看MySQL数据库的当前事务隔离级别,可以执行以下命令:SELECT @@tx_isolation;该命令将返回当前数据库的事务隔离级别,可能的返回值包括:READ UNCOMMITTEDREAD COMMITTEDREPEATA
2024-04-17
2024-04-02
mysql数据库事务及隔离级别
事务的四大特性: 原子性: 事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用; 一致性: 执行事务前后,数据保持一致,多个事务对同一个数据读取的结果是相同的; 隔离性: 并发访问数据库时,一个用户的事务不被其他事务所干扰,各
2021-09-18
MySQL的事务隔离级别
目录数据库事务的四大特性⑴ 原子性(Atomicity)⑵ 一致性(Consistency)⑶ 隔离性(Isolation)⑷ 持久性(Durability)SQL的4种隔离级别Read Uncommitted(读取未提交内容)Read Committed(读
2021-07-07
2024-04-02
MySQL 事务的隔离级别
1. 事务的ACID事务的ACID是指事务拥有的4个特性的首字母组合:atomicity(原子性), consistency(一致性), isolation(隔离性)和durability(持久性)。①atomicity(原子性):表示事务是一个不可分割的工作
2019-01-27
MySQL事务与隔离级别如何使用
这篇文章主要介绍“MySQL事务与隔离级别如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL事务与隔离级别如何使用”文章能帮助大家解决问题。什么是事务事务就是一组操作的集合,事务将整组
2023-07-05
2024-04-02
MySQL事务、隔离级别及MVCC是什么
这篇文章主要介绍了MySQL事务、隔离级别及MVCC是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。mysql教程栏目介绍MySQL相关的事务、隔离级别及MVCC。MySQL
2022-11-30
2024-04-02
2024-04-02