• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    MySQL查看和修改事务隔离级别的实例讲解

    查看事务隔离级别

    在 MySQL 中,可以通过show variables like '%tx_isolation%'或select @@tx_isolation;语句来查看当前事务隔离级别。

    查看当前事务隔离级别的 SQL 语句和运行结果如下:

    mysql> show variables like '%tx_isolation%';
    +---------------+-----------------+
    | Variable_name | Value      |
    +---------------+-----------------+
    | tx_isolation | REPEATABLE-READ |
    +---------------+-----------------+
    1 row in set, 1 warning (0.17 sec)
    mysql> select @@tx_isolation;
    +-----------------+
    | @@tx_isolation |
    +-----------------+
    | REPEATABLE-READ |
    +-----------------+
    1 row in set, 1 warning (0.00 sec)

    结果显示,目前 MySQL 的事务隔离级别是 REPEATABLE-READ。

    另外,还可以使用下列语句分别查询全局和会话的事务隔离级别:

    SELECT @@global.tx_isolation;
    SELECT @@session.tx_isolation;

    提示:在MySQL 8.0.3 中,tx_isolation 变量被 transaction_isolation 变量替换了。在 MySQL 8.0.3 版本中查询事务隔离级别,只要把上述查询语句中的 tx_isolation 变量替换成 transaction_isolation 变量即可。

    修改事务隔离级别

    MySQL 提供了 SET TRANSACTION 语句,该语句可以改变单个会话或全局的事务隔离级别。语法格式如下:

    SET [SESSION | GLOBAL] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE}

    其中,SESSION 和 GLOBAL 关键字用来指定修改的事务隔离级别的范围:

    任何用户都能改变会话的事务隔离级别,但是只有拥有 SUPER 权限的用户才能改变全局的事务隔离级别。

    如果使用普通用户修改全局事务隔离级别,就会提示需要超级权限才能执行此操作的错误信息,SQL 语句和运行结果如下:

    C:\Users\leovo>mysql -utestuser -p
    Enter password: ******
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 41
    Server version: 5.7.29-log MySQL Community Server (GPL)
     
    Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
     
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
     
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
     
    mysql> SET GLOBAL TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
    ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER privilege(s) for this operation
    mysql> SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
    Query OK, 0 rows affected (0.00 sec)

    示例 1

    使用 SET TRANSACTION 语句分别修改 session 和全局的事务隔离级别SQL 语句和运行结果如下:

    mysql> select @@session.tx_isolation;
    +------------------------+
    | @@session.tx_isolation |
    +------------------------+
    | SERIALIZABLE      |
    +------------------------+
    1 row in set, 1 warning (0.00 sec)
    
    mysql> SET GLOBAL TRANSACTION ISOLATION LEVEL REPEATABLE READ;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> select @@global.tx_isolation;
    +-----------------------+
    | @@global.tx_isolation |
    +-----------------------+
    | REPEATABLE-READ    |
    +-----------------------+
    1 row in set, 1 warning (0.00 sec)

    还可以使用 set tx_isolation 命令直接修改当前 session 的事务隔离级别,SQL 语句和运行结果如下:

    mysql> set tx_isolation='READ-COMMITTED';
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    
    mysql> select @@session.tx_isolation;
    +------------------------+
    | @@session.tx_isolation |
    +------------------------+
    | READ-COMMITTED     |
    +------------------------+
    1 row in set, 1 warning (0.00 sec)

    知识点补充

    Mysql事务隔离级别之读提交流程图

    以上就是MySQL查看和修改事务隔离级别的实例讲解的详细内容,更多关于MySQL查看和修改事务隔离级别的资料请关注脚本之家其它相关文章!

    您可能感兴趣的文章:
    • Mysql事务隔离级别之读提交详解
    • MySQL四种事务隔离级别详解
    • MySQL 四种事务隔离级别详解及对比
    • 深入解析MySQL的事务隔离及其对性能产生的影响
    • MySQL中Innodb的事务隔离级别和锁的关系的讲解教程
    • MySQL数据库事务隔离级别介绍(Transaction Isolation Level)
    • MySQL InnoDB中的锁机制深入讲解
    • MySQL锁机制与用法分析
    • 深入理解Mysql事务隔离级别与锁机制问题
    上一篇:MySQL查询用户权限的方法总结
    下一篇:重置mysql的root密码最简单的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    MySQL查看和修改事务隔离级别的实例讲解 MySQL,查看,和,修改,事务,