• mysql事务隔离级别与设置


    mysql数据库,当且仅当引擎是InnoDB,才支持事务;

    1、隔离级别

    事务的隔离级别分为:未提交读(read uncommitted)、已提交读(read committed)、可重复读(repeatable read)、串行化(serializable)。

    未提交读

    A事务已执行,但未提交;B事务查询到A事务的更新后数据;A事务回滚;---出现脏数据

    已提交读

    A事务执行更新;B事务查询;A事务又执行更新;B事务再次查询时,前后两次数据不一致;---不可重复读

    可重复读

    A事务无论执行多少次,只要不提交,B事务查询值都不变;B事务仅查询B事务开始时那一瞬间的数据快照;

    串行化

    不允许读写并发操作,写执行时,读必须等待;

    2、数据库设置

    //查看当前事物级别:
    SELECT @@tx_isolation;
    //设置mysql的隔离级别:
    set session transaction isolation level 设置事务隔离级别
    //设置read uncommitted级别:
    set session transaction isolation level read uncommitted;
    
    //设置read committed级别:
    set session transaction isolation level read committed;
    
    //设置repeatable read级别:
    set session transaction isolation level repeatable read;
    
    //设置serializable级别:
    set session transaction isolation level serializable;

    3、Mysql 8.0+ 查询数据库事务隔离级别

    根据慕课网课程中的方法,查询事务隔离级别使用:

    select @@tx_isolation;

    我在sequal pro中,却提示错误:Unknown system variable 'tx_isolation'

    查询了官方文档,在8.0+就已经抛弃了这样的查询方法,https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html

    在MySQL 8.0.3 中,该变量已经被 transaction_isolation 替换了。

    最新的查询方法有多种,下面提供2种:

    1、select @@transaction_isolation;

    2、show variables like 'transaction_isolation';

    原文出处:

    奇天异下, mysql事务隔离级别与设置, https://www.cnblogs.com/huasky/p/11190086.html

    LXMAJS, Mysql 8.0+ 查询数据库事务隔离级别, https://www.cnblogs.com/lxmajs/p/10277901.html

  • 相关阅读:
    [RxSwift]4.4、Operator
    [RxSwift]4.3.6、ControlProperty
    [RxSwift]4.3.5、Variable (已弃用)
    [RxSwift]4.3.0、Observable & Observer 既是可监听序列也是观察者
    [RxSwift]4.2.2、Binder
    [RxSwift]4.2.1、AnyObserver
    Java重温学习笔记,Java8新特性:接口的默认方法
    Tomcat下,MySQL连接池的配置和使用(Tomcat9,MySQL5.5)
    MyEclipse2020配置JDK1.8及Tomcat9
    Java重温学习笔记,Java7新特性
  • 原文地址:https://www.cnblogs.com/ryelqy/p/11434120.html
Copyright © 2020-2023  润新知