查看事务隔离级别

在 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 关键字用来指定修改的事务隔离级别的范围:

SESSION:表示修改的事务隔离级别将应用于当前 session(当前 cmd 窗口)内的所有事务;

GLOBAL:表示修改的事务隔离级别将应用于所有 session(全局)中的所有事务,且当前已经存在的 session 不受影响;

如果省略 SESSION 和 GLOBAL,表示修改的事务隔离级别将应用于当前 session 内的下一个还未开始的事务。

任何用户都能改变会话的事务隔离级别,但是只有拥有 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查看和修改事务隔离级别的实例讲解相关推荐

  1. mysql查看数据库事务隔离级别_MySQL查看和修改事务隔离级别的实例讲解

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

  2. mysql是如何管理数据_【MySQL】如何管理数据库

    MySQL作为一款数据库管理系统(DataBase Management System,DBMS)软件,可以管理多个数据库.本文,主要讲述如何对一个数据库进行一系列的"增.删.改.查&quo ...

  3. mysql数据库简单介绍_数据库的简单介绍

    关系型数据库与非关系型数据库 关系型数据库:mysql /oracle/sql server/sqlite 优点: 1.易于维护:都是使用表结构,格式一致: 2.使用方便:sql语言通用,可用于复杂查 ...

  4. mysql特殊符号无法储存_解决MYSQL数据库无法保存emoji表情及特殊符号问题

    MySQL在5.5.3版本之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode.其实,utf8mb4是utf8的超集,理论上原来使用utf8 ...

  5. mysql 上云迁移方案_数据库上云迁移方案

    自建业务数据库正在面临的挑战 1. 有活动上线,压力突增,数据库却来不及扩容了: 2. 采用读写分离,刚更新的数据,却查询不到了: 3. 数据的主从复制经常中断: 4. 多台应用服务器用同一台数据库, ...

  6. mysql数据库基本语法_[数据库]MySQL 基本语法

    [数据库]MySQL 基本语法 0 2018-05-31 05:00:07 1.说明: 创建默认数据库 create database 库名; 2.说明: 创建指定字符编码的数据库 create da ...

  7. mysql数据应用从入门_《MySQL数据库应用从入门到精通》

    第1章 数据库概述 1.1基本概念 1.1.1数据库技术发展阶段 人工管理阶段-->文件系统阶段-->数据库系统阶段 1.1.2涉及的概念 数据库(DB).数据库管理系统(DBMS).数据 ...

  8. mysql数据 锁 隔离级别_MySQL数据库事务各隔离级别加锁情况--read uncommitted篇

    1.目的 1.1 合适人群 1.数据库事务特征我只是背过,并没有很深刻的理解. 2.数据库事务的隔离级别只是了解,并没有深刻理解,也没有在实际工作中体验使用过. 3.经常面试被人问起数据库加锁情况,一 ...

  9. mysql自然连接和等值连接_数据库自然连接与等值连接

    mysql-数据查询语句-多表 连接查询 连接查询,是关系数据库中最主要的查询,包括等值查询.自然连接查询.非等值查询.自身连接查询.外连接查询和复合条件连接查询等. 1.等值与非等值连接查询 连接查 ...

  10. mysql数据库建仓范式_存mysql个数

    MySQL学习笔记之数据类型详解 注:以下内容针对MySQL5.0及以上版本 MySQL的数据类型非常多,选择正确的数据类型对于获得高性能至关重要,本文是我结合网上看到的一些blog加上<高性能 ...

最新文章

  1. 容器技术 - docker
  2. zb如何导出自己画的_zbrush纹理贴图(zbrush怎么导出映射贴图)
  3. Django(part7)--请求及HttpRequest对象
  4. 数据结构:点之间的最短距离--Floyd算法
  5. BI在企业数字化转型中的价值
  6. maven 阿里云仓库
  7. 《金融时报》和麦肯锡:本年度最佳书单
  8. 如何制作U盘启动盘并且安装系统(保姆级教学)
  9. 当上领导以后才明白的事情
  10. 揭秘腾讯代码管理核心—工蜂Git系统架构
  11. 人工智能“六步走”学习路线
  12. 自我规范模版A要求2:展示数据列表 (无从表)和导出数据页面
  13. 【分享】光模块PPT
  14. VC2005操作Word
  15. HTTP请求响应基础介绍
  16. Python日历模块| 使用示例的weekday()方法
  17. java实现mysql还原_java代码实现mysql的备份与还原
  18. ICA原理及相关链接
  19. 关于STM32单片机IAP升级中if(((*(__IO uint32_t*)ulAddr_App) 0x2FFE0000) == 0x20000000)语句的理解
  20. vs2010 sp1 安装Silverlight5后不能使用,提示需要安装Silverlight4

热门文章

  1. IL -- 手动处理装箱Box
  2. java 动态代理 jdk为何比cglib效率低 原理总结
  3. easyui刷新当前选项卡tabs
  4. JQuery控制div外点击隐藏,div内点击不会隐藏
  5. cockroachdb设计翻译
  6. 通过shell和redis来实现集群业务中日志的实时收集分析
  7. visual studio for mac在线安装网络错误
  8. FileStream StreamWriter StreamReader BinaryReader
  9. hdu 1284 钱币兑换问题 (递推 || DP || 母函数)
  10. mysql gitd 数据结构同步失败_mysql 5.7 gtid主从同步错误修复