【293天】每日项目总结系列031(2017.11.25)

叨叨两句

  1. ~

事务的四大特性

1.原子性:事务是一组不可分割的操做单元,这组单元要么同时成功要么同时失败.
2.一致性:事务先后的数据完整性要保持一致。
3.隔离性:多个用户的事务之间不要相互影响,要相互隔离。
4.持久性:一个事务一旦提交,那么它对数据库产生的影响就是永久的不可逆的,若是后面再回滚或者出异常,都不会影响已提交的事务。数据库

不考虑事务的隔离性引起的状况

1.脏读:一个事务读取到了另一个事务未提交的数据
2.不可重复读:在一个事务中,两次查询的结果不一致(针对的是 update操做)
3.虚读(幻读):在一个事务中,两次查询的结果不一致(针对的是 insert操做)事务

经过设置事务的隔离级别来解决脏读、不可重复读、虚读

事务的隔离级别:
1.read uncommitted; 读取到未提交,最低级别,在这种级别下,以上三种状况都会发生
2.read committed; 读取到已提交数据,能够避免脏读,可是会发生不可重复读和虚读(Oracle的默认隔离级别)
3.repeatable read; 可重复度 ,能够避免不可重复读和脏读,可是会发生虚读的状况。(MySql的默认隔离级别)
4.serializable; 序列化的,串行化的 最高的隔离级别,可以避免以上三种状况,可是效率最低。 通常银行系统使用这种隔离级别it