事务概述
第2节:MySQL4种事务隔离级别分析
第3节:总结
![6ef659e6e04c76468df4b1e029f1f49f.png](https://img-blog.csdnimg.cn/img_convert/6ef659e6e04c76468df4b1e029f1f49f.png)
1 事务概述
![04a5cfbf8c9bed00f1524b1f9ead6180.png](https://img-blog.csdnimg.cn/img_convert/04a5cfbf8c9bed00f1524b1f9ead6180.png)
![e729d6b472c7085467af182b7f42f1b0.png](https://img-blog.csdnimg.cn/img_convert/e729d6b472c7085467af182b7f42f1b0.png)
什么是事务?
数据库事务(简称:事务)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。事务的使用是数据库管理系统区别文件系统的重要特征之一。
事务拥有四个重要的特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),人们习惯称之为 ACID 特性。
![71a7c6db2e1db1d4b6bc0d64aa4ef4a3.png](https://img-blog.csdnimg.cn/img_convert/71a7c6db2e1db1d4b6bc0d64aa4ef4a3.png)
![d3a5f6b0bccec4a51eefbd71daf65e8a.png](https://img-blog.csdnimg.cn/img_convert/d3a5f6b0bccec4a51eefbd71daf65e8a.png)
事务
特性
事务具有ACID特性
1. 原子性(Atomicity)。事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。例如,如果一个事务需要新增 100 条记录,但是在新增了 10 条记录之后就失败了,那么数据库将回滚对这 10 条新增的记录。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。
2. 一致性(Consistency)。指事务将数据库从一种状态转变为另一种一致的的状态。事务开始前和结束后,数据库的完整性约束没有被破坏。例如工号带有唯一属性,如果经过一个修改工号的事务后,工号变的非唯一了,则表明一致性遭到了破坏。
3. 隔离性(Isolation)。要求每个读写事务的对象对其他事务的操作对象能互相分离,即该事务提交前对其他事务不可见。也可以理解为多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其它事务运行效果。这指的是在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。由并发事务所做的修改必须与任何其他并发事务所做的修改隔离。例如一个用户在更新自己的个人信息的同时,是不能看到系统管理员也在更新该用户的个人信息(此时更新事务还未提交)。
4. 持续性(Durability)。事务一旦提交,则其结果就是永久性的。即使发生宕机的故障,数据库也能将数据恢复,也就是说事务完成后,事务对数据库的所有更新将被保存到数据库,不能回滚。这只是从事务本身的角度来保证,排除 RDBMS(关系型数据库管理系统,例如 Oracle、MySQL 等)本身发生的故障。
![6ef659e6e04c76468df4b1e029f1f49f.png](https://img-blog.csdnimg.cn/img_convert/6ef659e6e04c76468df4b1e029f1f49f.png)
2 MySQL4种事务隔离级别分析
隔离
级别
事务隔离级别概述
SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。
1. Read Uncommitted(读取未提