zoukankan      html  css  js  c++  java
  • 事务隔离性

    声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。

    事务隔离性:

    Read Uncommitted(读取未提交内容)

    比方说火车票售票,拿到的车票是第一张,拿到车票之后立马修改掉,改成锁定状态,就是不一定买

    另外一个事务也说要查询出车票1张,这时候查询也是查询出前面座位一的票出来了,因为它那边的事务还没提交,所以它看到的是没有修改的数据,其实那条数据已经被修改了,如果你这边也发出个update修改的话就会卡住

    image

    如下图:

    左边的事务查询出来一修改1号票,但是另外一边的事务查询1号票仍然是显示未售出,其实那张票已经被别锁定了

    所以你只能看到提交后的数据,不能看到未提交的数据,因为你左边那个事务未提交,所以你看到的是没有提交前的数据,你已经把第一张票给锁定了,我应该拿第二张票给你,因为你第一张票不一定能出票成功,要别人放弃那张票你才能出票成功

    image

    如下图:所以就会出现一个读取未提交数据隔离事务,又称之为脏读模式,就是说你读取的数据不一定是有效的数据,输入以下这条语句就改成脏读模式了

    set tx_isolation='READ-UNCOMMITTED';

    改成脏读模式之后,这时候查询就不会查询出1号了

    image

    如下图,如果你锁定2号、它查出来的就是3号、如果你锁定3号、它查出来的就是4号

    image

    Select @@tx_isolation 查询当前事务隔离级别 默认是可重读级别

    image

    脏读模式有好有坏:

    好处 售票可以及时看见状态

    坏处 就是数据有可能会回滚

    如下图:脏读的坏处就是,好比以下财务例题,财务这个事务修改金额为一万,员工那边查询有一万块钱,然后财务来一个rollback 然后你在查询就变成0了,这就是脏读不好的一点

    image

    Read Committed(读取提交内容)

    Repeatable Read(可重读)

    Serializable(可串行化)

  • 相关阅读:
    jsoup 1.4.1 发布,超棒的 HTML 解析器
    NetBeans 时事通讯(刊号 # 126 Nov 24, 2010)
    利用cx_Freeze将py文件打包成exe文件(图文全解) 老爸的蒸面条 51CTO技术博客
    Newstyle Signal and Slot Support¶
    Python 标准库 urllib2 的使用细节
    cxfreeze package pyqt4 app with no backend terimal display
    Qt Widget Gallery
    Python32使用cxFreeze打包
    D3.js DataDriven Documents
    QT 的信号与槽机制介绍
  • 原文地址:https://www.cnblogs.com/kaigexuetang/p/8259445.html
Copyright © 2011-2022 走看看