zoukankan      html  css  js  c++  java
  • 数据库默认隔离级别

    DB使用的隔离级别不仅影响数据库的并发性,而且影响并发应用程序的性能。通常,使用的隔离级别越严格,并发性就越小,某些应用程序的性能可能会随之越低,因为它们要等待资源上的锁被释放。

    Dirty Read 脏读

    NonRepeatable Read 不可重复读

    Phantom Read 幻读

    Read uncommitted 未提交读

    Possible

    Possible

    Possible

    Read committed 提交读

    Not possible

    Possible

    Possible

    Repeatable read 可重复读

    Not possible

    Not possible

    Possible

    Serializable 序列化

    Not possible

    Not possible

    Not possible

    未提交读隔离级别是最不严格的隔离级别,现实中应用很少。在使用这个隔离级别时,仅当另一个事务试图删除或更改被检索的行所在的表时,才会锁定一个事务检索的行。因为在使用这种隔离级别时,行通常保持未锁定状态,所以脏读、不可重复读和幻像读都可能会发生。

    提交读是Oracle默认的隔离级别,事务中的每一条语句都遵从语句级的读一致性,即一个语句所处理的数据集是在单一时间点上的数据集,这个时间点是这个语句开始的时间,一个语句看不见在它开始执行后提交的修改

    可重复读是Mysql的默认隔离级别。在该隔离级别下,一个事务的影响完全与其他并发事务隔离,脏读、不可重复的读、幻像读现象都不会发生。当使用可重复读隔离级别时,在事务执行期间会锁定该事务以任何方式引用的所有行。因此,如果在同一个事务中发出同一个SELECT语句两次或更多次,那么产生的结果数据集总是相同的。因此,使用可重复读隔离级别的事务可以多次检索同一行集,并对它们执行任意操作,直到提交或回滚操作终止该事务。。

    序列化读会使整个数据库的并发性能大幅下降,仅仅能看见在本事务开始前由其它事务提交的更改和在本事务中所做的更改,接近于串行操作,现实中应用很少。

    脏读(dirty read):当一个事务读取另一个事务尚未提交的修改时,产生脏读。

    非重复读(nonrepeatable read:同一查询在同一事务中多次进行,由于其他提交事务所做的修改或删除,每次返回不同的结果集,此时发生非重复读。

    幻读(phantom read:同一查询在同一事务中多次进行,由于其他提交事务所做的插入操作,每次返回不同的结果集,此时发生幻像读

  • 相关阅读:
    123457123457#0#-----com.threeapp.renzhepaoku01----儿童跑酷游戏(忍者版)
    123456123456#0#-----com.threeapp.xiongMaoPaoPao01----熊猫跑酷01
    123456123456#0#-----com.threeapp.JiQiRenDaZhan01----机器人大战恐龙
    HashMap的工作原理
    Java 虚拟机
    分布式之缓存系统
    分库分表之后,id 主键如何处理?
    如何设计可以动态扩容缩容的分库分表方案?
    为什么要分库分表?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?
    如何实现 MySQL 的读写分离?MySQL 主从复制原理的是啥?如何解决 MySQL 主从同步的延时问题?
  • 原文地址:https://www.cnblogs.com/vigarbuaa/p/2824256.html
Copyright © 2011-2022 走看看