zoukankan      html  css  js  c++  java
  • 数据库四种事务隔离级别

    面试白话文,事务隔离级别

    事务具有原子性、一致性、隔离型、持久性。

    使用Mysql数据库说明事务隔离级别:

      mysql支持事务的常用引擎是InnoDB

      mysql默认事务隔离级别可重复读(REPEATABLE-READ):使用show variables like 'tx_isolation' 查看

      注:以下第二个事务,处于开启,未提交状态。

      第一种:读未提交(read uncommitted)

          第一个事务未提交更新的数据,第二个事务可以读到,这是读未提交。

          第一个事务未提交更新的数据回滚,第二个事务读到回滚的数据,这是脏读。

          故读未提交,可能会出现脏读。

      

      第二种:读已提交(read committed),也称不可重复读

          第一个事务未提交更新的数据,第二个事务读不到;

          第一个事务提交更新的数据,第二个事务可以读到;这是读已提交。

          第一个事务提交更新小明同学年龄12岁,第二个事务读到小明12岁;

          第三个事务再次提交更新小明同学年龄14岁,第二个事务再读到小明14岁;这是不可重复读(同一个事务内读取的数据结果不一致)。

          故读已提交,会出现不可重复读(同一个事务内读取的数据结果不一致),不可重复读也会造成幻读(同一个事务内读取的数据结果不一致)。

     

      第三种:可重复读(repeatable read),mysql默认事务隔离级别

          第一个事务提交更新小明同学年龄12岁,第二个事务读到小明12岁;

          第三个事务再次提交更新小明同学年龄14岁,第二个事务再读到小明12岁;这是可重复读(同一个事务内读取的数据结果一致)。

          第四个事务提交插入同学小马数据记录,第二个事务再读不仅读到小明12岁数据,还会读到小马同学数据,这是幻读。

          故可重复读,会出现幻读(同一个事务内读取的数据结果不一致)。

     

      第四种:串行化(serializable)

          隔离级别最高,解决了脏读、不可重复无、幻读问题。

          同一个事务内,不管读取多少次,结果集永远一致。

  • 相关阅读:
    xshell,putty远程连接Linux并使用密钥认证
    配置IP
    认识linux
    dpkg: error processing package libraspberrypi-doc (--configure): package is in a very bad inconsistent state;
    pi4j,Netbeans中togglebutton跟Jbutton的区别
    Netbeans配置Java SE嵌入式平台(树莓派)
    发光二极管正负极判断
    Eclipse安装图形JFrame,Jswing编程界面
    阿里云Centos6.9安装图形化界面
    Oracle 一个中文汉字 占用几个字节,由Oracle中字符集编码决定
  • 原文地址:https://www.cnblogs.com/zwcry/p/12048493.html
Copyright © 2011-2022 走看看