MySQL InnoDB事务模型
(一)MySQL InnoDB事务模型
(二)MySQL InnoDB锁模型
(三)MySQL InnoDB非锁定一致性读与锁定读
(四)MySQL InnoDB锁类型及幻象读问题
(五)MySQL InnoDB中各类语句加锁方式
(六)事务的提交与回滚极死锁检测、处理和预防
InnoDB四种事务隔离级别
事务的ACID特性:原子性、一致性、隔离性、持久性。这部分不多说了,任何一本讲数据库理论的书籍里边都会有讲。MySQL InnoDB通过锁来实现事务的一致性和隔离性,共实现了四种事务隔离级别:
· READ UNCOMMITTED
· READ COMMITTED
· REPEATABLE READ
· SERIALIZABLE
(1)READ UNCOMMITTED:某个session中的事务可以看到其他session的事务中尚未提交的更改,而该更改可能回滚,也即会出现”脏读“;(2)READ COMMITTED:某个session中的事务只可以看到其他session的事务中已经提交的更改,不会出现”脏读“,但一个事务对同一对象的两次查询结果可能出现不一致,也即会出现“不可重复读”;(3)REPEATABLE READ:某个session中的事务不能查询到其他session的事务中未提交和已经提交的更改,不会出现”不可重复读”,但期间,其他事务却可能对数据进行更改并提交,而这些更改对前一个事务中的INSERT/UPDATE/DELETE等语句是可见的,因此可能出现”更新丢失“,另外,虽然SELECT不到,但对其进行更改操作时却真实的存在,就好像幻象一样,且更改过后可以被同一事物中的