美文网首页
四种事务隔离级别与三种异常

四种事务隔离级别与三种异常

作者: DaSE_Bee | 来源:发表于2018-03-25 15:42 被阅读0次

四种事务隔离级别:

未提交读:一个事务可以读任何已提交或未提交的数据。这可以通过“读操作不需
要请求任何锁”来实现。

已提交读:一个事务可以读任何已提交的数据。对于同一个对象的重复读可能导致
读到不同版本的数据。实现方式是,读数据前必须首先获得一个读操作锁,一旦数
据读取之后该锁被立即释放。

可重复读:一个事务只能读取一个已提交数据的一个版本;一旦该事务读取了一个
对象,那么,它将只能读取该对象的同一个版本。实现方式是,事务在请求读数据
之前必须获得一个锁,并且保持该锁直到事务结束。

可串行化:保证完全的可串行化。

三种异常:

1、脏读:脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。

2、不可重复读:是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读。

3、幻读。乍一看可重复读似乎保证了完全的可串行化,但是,其实并不是这样。在早期的 R 系统中发生了一个“幽灵问题”。在幽灵问题中,一个事务使用同样的谓词多次访问了同一个关系,但是,最近的访问却得到了最初访问时没有发现的新的“幽灵元组”。原因在于,元组级的两段锁并不能阻止往表中插入元组。表级别的两段锁可以防止幽灵问题,但是,当事务通过索引访问表中的几个元组时,表级别的两段锁是被限制的。

相关文章

  • SQL 隔离级别

    隔离级别 三种读写异常 四种隔离级别

  • 理解:事务的隔离级别

    一、数据库事务的ACID属性二、事务的隔离级别三、读写异常四、事务隔离级别与读写异常的关系五、MYSQL实践演示六...

  • Mysql事务

    事务隔离级别 事务隔离级别有四种:read-uncomitted,read-commited,repeatable...

  • 四种事务隔离级别与三种异常

    四种事务隔离级别: 未提交读:一个事务可以读任何已提交或未提交的数据。这可以通过“读操作不需要请求任何锁”来实现。...

  • mysql事务隔离级别的实现原理

    mysql事务隔离级别的实现原理 mysql innodb中的四种事务隔离级别[https://www.jians...

  • Mysql隔离级别总结

    事务的隔离级别 SQL 标准定义了四种隔离级别,MySQL 全都支持。这四种隔离级别分别是: 读未提交(READ ...

  • MySQL04

    数据库设计与事务控制 表与表之间三种关系 三大范式 ER图 事务四大特性 脏读、幻读、不可重复读、事务四种隔离级别...

  • SQL必知必会(MVCC)

    我们知道事务有 4 个隔离级别,以及可能存在的三种异常问题,如下图所示: 在 MySQL 中,默认的隔离级别是可重...

  • 事务隔离级别:可重复读

    如果事务隔离级别显示REPEATABLE-READ,即是可重复读。 事务的四种隔离级别 (引自: Innodb中的...

  • Mac系统mysql设置事务隔离级别

    Mac系统mysql设置事务隔离级别 MySQL数据库事务隔离级别主要有四种: Serializable 串行化,...

网友评论

      本文标题:四种事务隔离级别与三种异常

      本文链接:https://www.haomeiwen.com/subject/qiohcftx.html