zoukankan      html  css  js  c++  java
  • 烟男总结的事务隔离机制

    文章总结来自孤独烟,打杂的ZRJ,顺便盗几个图

    事务隔离分四级:分别为

      1:读未提交:就是一个事务检索的数据被另一个未提交的事务修改了,就是说检索数据时不可靠的,会被另一个还没提交的事务修改了数据————>出现脏读的可能

      2:读已提交:就是一个事务检索的数据被另一个已经提交了的事务修改了,也叫做不可重复读,这里说的数据更是指主键索引没改,但是主键索引指向的数据内容变了,

            如果是增加或者删除一条数据,则不属于不可重复读--------------->出现不可重复读的可能    

            可以看得出发生脏读是不可重复读的子集,发生脏读必然不可重复读也发生了,所以读未提交会产生脏读,不可重复读的可能,也就是说读未提交会产生不可重复读

      3:可重复读:对幻读的解释:基于不可重复读,一个事务对检索的数据,被另一个已经提交的事务修改了,而这中修改是对行的修改,增加或者删除,这种就属于幻读

            所以就可以看出,不可重复读是幻读的子集,就是说发生不可重复读属于幻读的一种,就是说幻读除了是对数据行的增加或者减少,

            还可能是对某个索引值的内容的改变

          但是,dance,可重复读不能解决幻读的情况

          要解决幻读需要在REPEtable read 隔离级别下,该隔离级别可以保证不出现不可重复读和读脏的情况,弹药保证幻读还需要加锁lock next-key

          就是要在查询是加上select * from tableA lock in share mode

      4:而序列化就简单了,就是在可重复读的情况下加上lock in share mode

                                        放图震慑

    隔离级别脏读不可重复读幻读
    读未提交
    不可重复读
    可重复读
    串行化
  • 相关阅读:
    .net core web api swagger 配置笔记
    mvc下ajax请求遇到session超时简单处理方式
    sql ltrim/rtrim 字段中为中文时出现?的问题
    SQL 将一个字段内用逗号分隔的内容分成多条记录
    bootstrap下modal模态框中webuploader控件按钮异常(无法点击)问题解决办法【转】
    mvc 封装控件使用mvcpager
    uploadify在chrome下初始化失败,在Firefox下却可以原因探析
    MVC FormCollection 无法获取值的问题
    linq to sql之like
    mvcpager 表单提交时无法获取pageindex的值
  • 原文地址:https://www.cnblogs.com/ali-guili/p/9966610.html
Copyright © 2011-2022 走看看