0、准备
事务隔离级别如下:
Read-Uncommitted
Read-Committed
Repeatable-Read
Seriaizable
在xhsell开启三个会话( 注意:这里的xshell会话和数据库会话做区分;事务基于数据库连接,我们将一个数据库会话看作一个事务):session A、session B、session C
先在sessionA下连接数据库,session B、session C暂时不连

1、事务隔离级别的查看
5.7.2之前 使用 show variables like 'tx_isolation' 或者 select @@tx_isolation;
5.7.2之后 使用 show variables like 'transaction_isolation'或者 select @@transaction_isolation;
2、事务隔离级别的修改
5.7.2之前 使用 set [global 全局范围 /session 会话范围 ] tx_isolation = ‘隔离级别’
5.7.2之后 使用 set [global 全局范围 /session 会话范围 ] transaction_isolation = ‘隔离级别’
之前全局范围和会话范围理解有偏差,这次纠正操作一下
全局范围:对当前****存在的会话无效,对之后连接的所有会话有效
会话范围:对当前会话的后续的事务有效,对之前的事务无效;如果在事务之间执行,对后续的事务有效;如果在已经开启的事务中间执行,不会影响当前正在执行的事务
全局范围和会话范围都是基于内存的,重启mysql之后又会回到默认的隔离级别

实践如下:
先验证global 全局范围的使用
1、查看数据库的默认隔离级别 (由于我的mysql version是 <5.7 ,应该使用show variables like 'tx_isolation'; ),并修改隔离级别的有效范围为全局范围(set global tx_isolation = 'READ-COMMITTED';)

按照前面的理论那么我们可以得到
思考1:设置了global的有效范围,当前会话查看应该仍然是 repeatable-read;
思考2: 在sessionB连接后再查看应该就变成 read-committed了

验证1:

验证2:

思考3:sessionA、B 已经连接后再sessionA设置,那么对B还会有效吗?
因为我们之前说过global对于当前存在的会话是不会生效的,之后新的会话才有效;所以这里预计
sessionB仍然是read-committed,最后再重新加入一个sessionC查看隔离级别应该变成了Read-Uncommitted
实践:在session A中再设置 global范围为Read-Uncommitted级别(set global tx_isolation = 'Read-Uncommitted';),再观察sessionB是否生效,最后再重新加入一个sessionC观察结果



根据结果,上面的思考预期是正确的,我们的理论也是得到了验证;重启数据库可以自己验证

接下来验证隔离级别为会话范围
自然应该我们在哪个session中设置,哪个session中生效
在sessionA中设置serializable, A生效,B、C不生效
sessionA serializable

sessionB

sessionC

session范围得到了验证.

mysql数据库事务隔离级别的查看、设置、以及隔离级别有效范围的设置相关推荐

  1. 数据库事务的4大特性与隔离级别

    本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务 ...

  2. mysql数据库事务隔离级别是_数据库事务隔离级别-MySQL为例 · Sean

    在银行系统的存取款过程中,当遇到对一个账户并发存取的时候,系统该如何处理比较好.可能不少人会想到线程同步,然而在应用层使用同步会导致对象锁定,大大影响并发效率.此时,充分利用数据库的事务隔离机制可以很 ...

  3. 概述MySQL数据库---事务隔离级别

    同一个应用程序中的多个事务或不同应用程序中的多个事务在同一个数据集上并发执行时, 可能会出现许多意外的问题,事务并发处理可能引起的问题可分为如下三种类型: 脏读(Drity Read): 已知有两个事 ...

  4. Mysql数据库事务详解

    80年代中国人结婚四大件:手表.自行车.缝纫机.收音机(三转一响).要把事务娶回家需要四大件,所以事务很刻薄(ACID),四大件清单:原子性(Atom).一致性(Consistent).隔离性(Iso ...

  5. MySQL学习-MySQL数据库事务

    MySQL数据库事务 1.事务概述 1.什么是事务? 2.和事务相关的语句只有:**DML语句.(insert delete update)** 3.假设所有的业务都能使用1条DML语句搞定,还需要事 ...

  6. MySql数据库事务隔离级别底层实现原理总结

    一:隔离级别 众所周知,事务的隔离级别有四个等级,分别是读未提交(RU),读已提交(RC),可重复读(RR)与串行化(Serial),通过设置隔离级别,可以解决事务并发过程中导致的脏读,不可重复读与幻 ...

  7. 数据库事务隔离级ORACLE数据库事务隔离级别介绍

    本文系转载,原文地址:http://singo107.iteye.com/blog/1175084 数据库事务的隔离级别有4个,由低到高依次为Read uncommitted.Read committ ...

  8. mysql 数据库事务 (二)隔离级别

    属于事务四大特性之一的隔离性(isolation),解决两个并发事务同时访问数据库表相同的行时,可能存在的问题 目录 基础 四大隔离级别 隔离级别与一致性关系 如何设置 作用范围 补充: 额外: 第一 ...

  9. MySQL数据库事务、mybatis框架、spring框架、springmvc框架、永和大王门店管理系统(框架第二部分)

    第十二章 MySQL数据库事务 一. 事务及四大特性 1.什么是事务 数据库事务(Database Transaction),是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行 ...

最新文章

  1. asp.net mvc5编程实战_深圳荷坳车铣复合编程培训cnc数控编程技术
  2. php跨域同步登录,织梦PC端移动端会员同步登录跨域AJAX
  3. Mr.J--密码强度检测
  4. hadoop php mysql_PHP+Hadoop+Hive+Thrift+Mysql实现数据统计分析
  5. SQL解析和优化器获得重大思路进展
  6. mysql ---- 全文索引:中文语义分词检索
  7. 公众号管理系统 html,Java SpringBoot+Mybatis Layui+JQuery+html微信公众号后台管理系统...
  8. 思科CCNP认证介绍
  9. EAS开发单据分录和序时簿添加合计
  10. Spring Boot整合Redis-lesson8
  11. 学校计算机协会面试自我介绍,个人社团面试自我介绍范文三篇
  12. 关键点检测---CPN, Cascaded Pyramid Network for Multi-Person Pose Estimation
  13. Python 3 字符串 split( ) 方法
  14. 继续理解socekt具体使用--2
  15. View事件分发机制分析
  16. 我的世界php motd,我的世界MOTD攻击服务器 频繁发送请求
  17. 利用软路由,轻松实现宽带叠加,已达到千兆网速的效果
  18. PgMP Program Management Professional All-in-One Exam Guide
  19. NET Core实战项目之CMS 第九章 设计篇-白话架构设计
  20. 清除缓存-Ctrl+Shift+Delete

热门文章

  1. 2021年安全员-A证(江苏省)考试平台及安全员-A证(江苏省)
  2. (转)好男人找不到女朋友的原因
  3. Intel CPU型号规格大全 (2007.08)
  4. Angular 的 ngIf 和 NgIf 有何区别
  5. 全球与中国外科工作服市场深度研究分析报告
  6. 二战浙大工程管理硕士MEM复试上岸经验分享
  7. idea git提交后撤回
  8. Lecture 1_Extra Classification Probabilistic Generative Model
  9. python上计算2的100次方_用VBS精确计算2的100次方的代码
  10. linux关机和重启名称,Linux关机命令和重启命令