说到这个,我们有必要知道什么叫事务:
作为单个逻辑单元执行一系列操作,要么完全执行,要么完全不执行。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。
事务有四个属性,称为ACID属性:
1、原子性(Atomicity):事务是一个原子单位,要么全部执行,要么全部不执行。
2、一致性(Consistent):事务的开始和结束,数据都必须保持一致状态。
3、隔离性(isolation):数据库系统提供隔离机制,保证并发事务之间是互相不干扰的。也就意味着事务处理过程中的中间状态对其他的事务是透明的。
4、持久性(Durable):事务完成之后,对数据的修改是永久性的,即使出现系统故障也能够保持。
事务的隔离级别
1.未提交读:
事务的最低隔离级别,一个事务可以读到另一个事务未提交的数据。会出现脏读的情况。
2.已提交读:
在一个事务修改数据过程中,如果事务没有进行提交,其他事务不能读取该数据。会出现不可重复读的现象
3.可重复读:
事务A在读取数据的过程中,事务B也可以对相同数据进行读取,但是不能进行修改直到事务A事务结束后,才会释放共享锁,这时事务B才可以增加排他锁,对数据进行修改。会出现幻读的现象。
扫描二维码关注公众号,回复:
6427171 查看本文章
4.序列化:
事务A在读取A表时,增加了表级共享锁,此时事务B也可以读取A表,但是不能进行任何数据的修改,直到事务A事务结束。随后事务B可以增加对A表的表级排他锁,此时事务A不能读取A表中的任何数据,更不能进行修改。