叨叨两句

  1. ~

事务的四大特性

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

不考虑事务的隔离性引发的情况

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

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

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


Wall_Breaker
2.1k 声望1.2k 粉丝

生死之间,就是我的跃迁之路,全程记录,欢迎见证