事务的隔离级别

事务的隔离级别

一、事务特性ACID

1、原子性:A atomicity

如果一个包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功,要么同时失败

2、一致性:C consistency

事务在执行前后,数据完整性必须保持一致

3、隔离性:I isolation

多个事务,相互独立,互不干扰

4、持久性:D durability

事务一旦提交,同步到磁盘,即使数据库出现了也不会产生影响

二、事务的并发问题

多个事务之间隔离,相互独立的,但是如果多个事务操作同一批数据,则会引发一些问题,设置不同的隔离级别就可以解决这些问题。

1、脏读

  事务A读取到事务B更新的数据,然后事务B回滚,事务A读取的这部分就是脏数据。

  事务A读取了事务B为提交的数据,就成为脏读

2、不可重复度

  事务A中多次读取到同一个数据,在此期间事务B对数据做了修改并提交,事务A多次读取同一个数据,出现了不一致。

  事务A读取到事务B更新后并提交的数据,就成为不可重复读

3、幻读

  事务A和事务B同时添加一条记录,发现id为10可以用,此时事务A插入id10并保存提交,事务B插入式报错了,难道我刚才的查询产生了幻觉了吗?

3.6.1 MySQL数据库隔离级别

级别名字隔离级别脏读不可重复读幻读数据库默认隔离级别
1 读未提交 read uncommitted  
2 读已提交 read committed Oracle和SQL Server
3 可重复读 repeatable read MySQL
4 串行化 serializable  
原文地址:https://www.cnblogs.com/gushiye/p/13934590.html