MySQL 事务隔离级别、数据不一致表现、加锁协议三者的关系

来源:互联网 发布:怎么联系手机淘宝客服 编辑:程序博客网 时间:2024/05/22 09:05

本文重点阐述三者之间的关系,其详细概念请自行百度。

1.MySQL事务隔离级别

定义:在数据库操作中,为了有效保证并发读取数据的正确性,提供不同程度的保护,故采用事务隔离等级。

包含:未提交读、已提交读、可重复读、串行化。

2.数据不一致表现

定义:是指事务并发操作时产生的副作用。

包含:丢失修改、脏读、不可重复读、幻读。

3.加锁协议

定义:事务在对数据库对象加锁,解锁是必须遵守的一种规则.在运用X锁和S锁对数据对象加锁时,还需要约定一些规则 ,例如何时申请X锁或S锁、持锁时间、何时释放等。称这些规则为封锁协议(Locking Protocol)----来自百度百科

包含:一级、二级、三级。这里要区分两段加锁协议这种非常类似的概念,这里说的加锁协议是为了保证数据的一致性,而两段加锁协议则是为了保证对事务的并发调度,两者应该可和谐共处。

4.关系

事务隔离级别加锁协议解决的数据不一致问题未提交读一级加锁丢失修改已提交读二级加锁协议脏读可重复读三级加锁协议不可重复读串行化强制事务排序幻读事务隔离级别是为了方便我们方便进行数据库使用才提出的,本身可以采用MYSQL操作原语来操作进行加锁从而解决不一致问题。但是这对于非数据库专家而言无疑是太困难的一件事。有了事务隔离级别后,我们可以根据自己的需求来进行数据库设置。