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

                                        放图震慑

    隔离级别脏读不可重复读幻读
    读未提交
    不可重复读
    可重复读
    串行化
  • 相关阅读:
    加一
    斐波那契数
    整数的各位积和之差
    移除元素
    删除排序数组中的重复项
    有效的括号
    爬楼梯
    最长公共前缀
    罗马数字转整数
    回文数
  • 原文地址:https://www.cnblogs.com/ali-guili/p/9966610.html
Copyright © 2011-2022 走看看