美文网首页
数据库的四种隔离级别的解释

数据库的四种隔离级别的解释

作者: 舒小贱 | 来源:发表于2017-09-26 19:52 被阅读0次

今天总算是搞明白了可重复读这种隔离级别中说的幻读是什么意思。然后把数据库的四种隔离级别整理一下:

在SQL标准中定义了四种隔离级别,每一种级别都规定了一个事务中所做的修改,哪些在事务内和事务间是可见的,哪些是不可见的。

一共有四种隔离级别,从低到高依次为:read uncommitted(未提交读), read commited(提交读), repeatable read(可重复读),serializable(可串行化)

较低的隔离级别支持可以执行更高的并发,和更小的系统开销

未提交读级别:事务中的修改,即使没有提交,对其他事务也都是可见的。事务能读取未提交的数据,也被称作脏读,这个级别会导致很多问题,在实际应用中一般不会用到。

提交读级别:解决了未提交读级别的脏读问题。一个事务开始时,只能看见已经提交的事务所做的修改。换句话说,一个事务从开始直到提交之前,所做的任何修改对其他事务都是不可见的。这个级别有时候也叫做不可重复读,因为同一个事务中两次执行同样的查询,可能会得到不一样的结果。(恰好在两次查询之间的时间,其他某个事务完成了对数据的更新)。

可重复读级别:上面的提交读级别解决了未提交读级别的脏读问题,但是无法保证在一个事务中两次读到同样记录的结果是一致的。此可重复读级别解决了此问题,能保证在同一个事务中,两次读取同样的记录结果是一致的。但是可重复读级别不能解决幻读的问题。幻读是指当某个事务在读取某个范围内的记录时,会产生幻行。(幻行可通过乐观锁和悲观锁来解决)。

可串行化级别:是最高级别,它通过强制事务串行化执行,避免了前面说的幻读的问题。但是会导致大量的超时和锁竞争的问题。

脏读:一行记录,两次读取结果不一样

幻读:一个范围的记录(几条记录),两次读取的记录条数不一样,通常是指多几条

提交读(不可重复读)级别解决了脏读问题,但存在不可重复读问题。
可重复读级别解决了可重复读问题,但是存在幻读问题
串行化级别解决了幻读问题。

相关文章

  • 数据库的四种隔离级别的解释

    今天总算是搞明白了可重复读这种隔离级别中说的幻读是什么意思。然后把数据库的四种隔离级别整理一下: 在SQL标准中定...

  • 第七章 事务(下)

    7.6 事务的隔离级别ISO和ANIS SQL标准制定了四种事务隔离级别的标准,但是很少有数据库厂商遵循这些标准。...

  • 数据库隔离级别

    数据库隔离级别有四种,分别是read uncommitted,read commited, repeatable ...

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

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

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

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

  • 聊聊MySQL的隔离级别

    原文:聊聊MySQL的隔离级别 | MySQL隔离级别原理参考:oracle - mysql - 数据库事务隔离级...

  • 数据库的隔离级别

    参考文章:数据库村的旺财和小强四种隔离级别,隔离强度逐渐升高: read uncommitted read com...

  • 数据库并发处理-隔离级别

    Mysql数据库有四种隔离级别,read-uncommitted, read-committed,repeatab...

  • mysql(innodb)事务和锁

    事务的四种隔离级别 在数据库操作中,为了有效保证并发读取数据的正确性,提出的事务隔离级别。我们的数据库锁,也是为了...

  • 数据库引擎

    Innodb引擎 Innodb引擎提供了对数据库ACID事务的支持,并且实现了SQL标准的四种隔离级别,关于数据库...

网友评论

      本文标题:数据库的四种隔离级别的解释

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