| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> mysql隔离级别与锁 -> 正文阅读 |
|
[大数据]mysql隔离级别与锁 |
1. 环境准备本文以mysql8.0版本为例 2. 过程本文主要以读未提交, 读已提交, 可重复读三种隔离级别来展示mysql的各种锁及索引对锁的影响 3. 表准备
id : 主键索引, 自增 card : 唯一索引 name : 普通索引 sessionA与sessionB 4. 隔离级别 : 读未提交4.1 定义question : 读未提交隔离级别的特点是什么?? 现在存在两个会话, sessionA,sessionB. 同时开启事务, sessionB对数据的修改, 在事务不提交的情况下, sessionA也可以查询到sessionB修改的数据
示例 :? ?4.2 索引对锁的影响
4.3 是否存在间隙锁??不存在间隙锁 5.?隔离级别 : 读已提交5.1 定义question : 读已提交的特点是什么? 现在存在两个会话sessionA, sessionB. sessionB对数据的修改在不提交的情况下sessionA无法发现, 如果sessionB将事务提交, sessionA可以发现. 如果sessionB对数据再一次进行修改, 则sessionA两次读取到的数据可能不相同 现在存在两个会话sessionA, sessionB, sessionB添加一条数据, 在不提交事务的情况下, sessionA也可以读到这条数据
5.2 索引对锁的影响与读未提交完全相同 5.3?是否存在间隙锁?不存在 6. 隔离级别 : 可重复读6.1 定义question : 可重复读的特点是什么? 现在存在两个会话sessionA, sessionB, sessionB对数据进行修改, 并且提交事务. 此时sessionA无法发现sessionB修改的数据, 只有sessionA本身事务提交之后, 才可以发现修改的数据
?6.2?索引对锁的影响
6.3?是否存在间隙锁??存在 ?根据数据可以知道, 存在的间隙是(5,10),(10,15),(17,正无穷)
6.4 解决幻读问题?question : 为什么说读已提交解决了部分幻读问题呢? 就像6.2中, 普通索引和非索引字段插入/修改数据被阻塞, 就是为了解决幻读问题, 6.3中的间隙锁也是为了解决幻读问题, 同时还存在这种情况,是没有能解决的 ? 7. 总结
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 14:22:03- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |