IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySql之InnoDB锁 -> 正文阅读

[大数据]MySql之InnoDB锁

MySql之InnoDB锁

1.行锁和表锁
表锁:不会出现死锁,发生锁冲突几率高,并发低。MyISAM和INNODB都支持
行锁:会出现死锁,发生锁冲突几率低,并发高。INNODB才支持
2.行锁的类型
行锁又分为共享锁,排他锁。
共享锁:读锁,多个事物可以对同一个数据共享同一把锁,持有锁的事物都可以访问数据,但是只能读不能修改
排他锁:写锁,只有一个事物能够获得排他锁,其他事物都不能获取该行的锁,不允许其他事务写,但允许读。更不允许其他事务给这几行上任何锁。innodb会对update\delete\insert语句制动添加排他锁
上共享锁的写法:lock in share mode
上排它锁的写法:for update
不过值得注意的是InnoDB行锁是通过给索引上的索引项加锁来实现的,只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁
3.间隙锁
间隙锁是在在索引记录间隙中的一种锁,或者是锁在第一个之前或最后一个之后。
MVCC使RR级别下,事物当前读来避免了读情况下出现幻读的问题,于是就有了间隙锁。间隙锁也属于排他锁。
间隙锁锁住的是一个区间,而不仅仅是区间中的每一条数据。
例如:

SELECT * FROM table WHERE id BETWEN 1 AND 10 FOR UPDATE;
在上诉这个例子中(1,10)区间内的记录都会被锁锁锁住,但是1和10两条记录都不会被锁住
间隙锁在使用唯一索引查询唯一行记录是不需要的,例如id列有唯一索引,那么下面语句只会对id=100的行使用索引记录锁定,其他会在这行记录之前插入也没有关系。不会影响查询结果。如果id不是索引列或不是唯一索引列,那么这条语句就 会锁定10之前的所有间隙

SELECT * FROM child WHERE id = 10;
idab
123
1025
10510
201020

在这种情况下就会锁住字段A 2-5之间的间隙和字段c5-10之间的间隙

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-11-30 15:41:10  更:2021-11-30 15:41:57 
 
开发: 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 9:39:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码