数据库事务四大属性
事务有四个属性,称为ACID属性:
1、原子性(Atomicity):事务是一个原子单位,要么全部执行,要么全部不执行。
2、一致性(Consistent):事务的开始和结束,数据都必须保持一致状态。
3、隔离性(isolation):数据库系统提供隔离机制,保证并发事务之间是互相不干扰的。也就意味着事务处理过程中的中间状态对其他的事务是透明的。
4、持久性(Durable):事务完成之后,对数据的修改是永久性的,即使出现系统故障也能够保持。
数据库事务隔离级别
脏读:事务A修改某个数据,同时,事务B来读取,此时,事务A在进行回滚,此时,事务B读取的是事务A回滚前的数据,即出现脏读。
不可重复读:事务A读取A数据,事务B也读取A数据并修改了这个A数据,事务A在读取A数据会发现两次读取的不一样。
幻读:事务A修改了表A的所有数据,同时事务B向A表插入一条数据,事务A在读A表,会发现还有一条没有修改的数据,就像出现了幻觉一样。
序列化:事务A在读取A表时,增加了表级共享锁,此时事务B也可以读取A表,但是不能进行任何数据的修改,直到事务A事务结束。随后事务B可以增加对A表的表级排他锁,此时事务A不能读取A表中的任何数据,更不能进行修改。