zoukankan      html  css  js  c++  java
  • MySQL_Oracle_事物的隔离级别

    数据库会话的设置:

    1:脏读

         情景:A事物读取B事物修改了但是未提交的数据

         问题:若B回滚了事物,A就读到了错误数据。

    2:不可重复读

        情景:A事物查询数据,B修改了数据,A又查询数据

        问题:A事物前后两次数据不一样

    3:幻读

        情景:A事物查询数据,B事物插入数据,A又查询数据

        问题:A事物感觉出现了幻觉,多了些数据

    1.读未提交(Read Uncommitted):这种隔离级别可以让当前事务读取到其它事物还没有提交的数据。这种读取应该是在回滚段中完成的。通过上面的分析,这种隔离级别是最低的,会导致引发脏读,不可重复读,和幻读。
    2.读已提交(Read Committed):这种隔离级别可以让当前事务读取到其它事物已经提交的数据。通过上面的分析,这种隔离级别会导致引发不可重复读,和幻读。
    3.可重复读取(Repeatable Read):这种隔离级别可以保证在一个事物中多次读取特定记录的时候都是一样的。通过上面的分析,这种隔离级别会导致引发幻读。
    4.串行(Serializable):这种隔离级别将事物放在一个队列中,每个事物开始之后,别的事物被挂起。同一个时间点只能有一个事物能操作数据库对象。这种隔离级别对于数据的完整性是最高的,但是同时大大降低了系统的可并发性。

  • 相关阅读:
    UOS、鸿蒙、麒麟全面出击,国产系统能否干掉Windows?
    黑客给疫情添乱
    人工智能与信息安全
    作为一个程序员,告诉你一些编码知识
    Linus Torvalds 宣布新版Linux系统内核发布
    linux系统root密码忘记了怎么办
    DevOps与NoOps现状分析
    Nginx服务详细介绍
    博客园“可运行"代码
    让setTimeout支持链式
  • 原文地址:https://www.cnblogs.com/xiaoit/p/3420149.html
Copyright © 2011-2022 走看看