唐宋八大家:三苏一殴王曾韩,外加一个柳宗元。--------- Banana.Banuit Gang(香柚帮)
事务的四大特性和事务并发时可能遇到的问题只需要记住八个字:一元吃喝,脏饭不丢。
事务的四大特性:
- 一:一致性(Consistency):事务执行前后,数据库都必须处于一致状态。
- 元:原子性(Atomicity):事务的所有操作要么全部成功,要么全部失败。
- 吃:持久性(Durability):事务一旦结束,数据将持久化到数据库中。
- 喝:隔离性(Isolation):一个事务执行的过程中,不应该受到其他事务的干扰,多个并发事务之间相互隔离。
事务并发时可能出现的问题:
- 脏:脏读(Dirty Read):一个事务读了另一个事物没有提交的数据。
- 饭:幻读(Phantom Reads):一个事务读了另一个事务插入的数据,导致第二次读的时候出现两条数据。
- 不:不可重复读(Non-Repeatable Reads): 一个事务读了另一个事务更新的数据,导致前后读的数据不一样。
- 丢:丢失更新(Lost Update):只要数据库支持事务,就不会出现丢失更新。
数据库的事务隔离机制:
- Read uncommitted:可以读取未提交数据,最低级别,任何情况都会发生。
- Read committed:可以读取已提交数据,可避免脏读的发生。可用乐观锁解决幻读、不可重复读问题。
- Repeatable read:可重复读,可避免脏读、不可重复读的发生。
- Serializable:可串行化,解决一切问题。