本文重点阐述三者之间的关系,其详细概念请自行百度。
1.MySQL事务隔离级别
定义:在数据库操作中,为了有效保证并发读取数据的正确性,提供不同程度的保护,故采用事务隔离等级。
包含:未提交读、已提交读、可重复读、串行化。
2.数据不一致表现
定义:是指事务并发操作时产生的副作用。
包含:丢失修改、脏读、不可重复读、幻读。
3.加锁协议
定义:事务在对数据库对象加锁,解锁是必须遵守的一种规则.在运用X锁和S锁对数据对象加锁时,还需要约定一些规则 ,例如何时申请X锁或S锁、持锁时间、何时释放等。称这些规则为封锁协议(Locking Protocol)----来自百度百科
包含:一级、二级、三级。这里要区分两段加锁协议这种非常类似的概念,这里说的加锁协议是为了保证数据的一致性,而两段加锁协议则是为了保证对事务的并发调度,两者应该可和谐共处。
4.关系
事务隔离级别 | 加锁协议 | 解决的数据不一致问题 |
未提交读 | 一级加锁 | 丢失修改 |
已提交读 | 二级加锁协议 | 脏读 |
可重复读 | 三级加锁协议 | 不可重复读 |
串行化 | 强制事务排序 | 幻读 |