Intention Locks 意向锁
Intention Locks 意向锁
InnoDB 支持多颗粒度锁定允许row-level locks和锁整个表共存。
为了使锁在多个颗粒级别实现, 额外类型的锁被称为意向锁是被使用。
. Intention lock 意向锁是表级锁 在InnoDB 表明锁的类型(共享或者排它) 一个事务随后需要用于一个记录在那个表。
有两种意向锁类型在InnoDB(假设事务T有请求一个表明类型的锁在表t)
1.意向共享锁 (IS): 事务T尝试设置S锁在表t的单个记录上
2.意向排它锁 事务T尝试设置X锁在那些记录上
例如, SELECT ... LOCK IN SHARE MODE 设置一个IS LOCK
SELECT ... FOR UPDATE 设置一个IS 锁
意向锁协议如下:
1.在一个事务可以获得S锁在表t的一条记录上,它必须首先获得一个IS或者更强的锁在表t
2.在一个事务可以获得X锁在一个记录,它必须首先获得一个IX锁在表t上
那些规则可以入下汇总:
X IX S IS
X Conflict Conflict Conflict Conflict
IX Conflict Compatible Conflict Compatible
S Conflict Conflict Compatible Compatible
IS Conflict Compatible Compatible Compatible
一个锁是被授权到一个请求的事务 如果它是和存在的锁兼容的,
但是不能授权如果它是和存在的锁冲突的。
一个事务等待直到冲突存在的锁被释放, 如果一个锁请求和存在的锁冲突,
不能被立即授予 意味它会导致死锁,一个错误发生
因此意向锁不堵塞任何除非全表请求(比如 LOCK TABLES ... WRITE).
IX和IS锁的主要目的是显示谁是锁住一个记录了,或者准备去锁定一个记录
Intention Locks 意向锁的更多相关文章
- 小白学习mysql 之 innodb locks
Innodb 锁类型: Shared and Exclusive Locks Intention Locks Record Locks Gap Locks Next-Key Locks Insert ...
- Gap 锁
14.3.1 InnoDB Locking InnoDB 锁 本章节描述InnoDB 使用的锁类型: Shared and Exclusive Locks Intention Locks Record ...
- Innodb中的锁
Innodb中的锁 共享锁和排它锁(Shared and Exclusive Locks)共享锁和排它锁是行级锁,有两种类型的行级锁 共享锁(s lock)允许持有锁的事务对行进行读取操作 排它锁(x ...
- Mysql锁(翻译)
内容主要是对mysql文档的翻译. 1. shared(s) 共享锁2. exclusive(x) 排它锁 innodb的s锁和x锁是行级锁.事务T1获得s锁,事务T2仍然可以获得s锁.事务T1获得x ...
- MySQL 锁模式
InnoDB implements standard row-level locking where there are two types of locks, shared (S) locks an ...
- 关于 InnoDB 锁的超全总结
有点全的 InnoDB 锁 几个月之前,开始深入学习 MySQL .说起数据库,并发控制是其中很重要的一部分.于是,就这样开起了 MySQL 锁的学习,随着学习的深入,发现想要更好的理解锁,需要了解 ...
- Innodb中有哪些锁?
0.前言 上一篇从MySQL层面上了解锁,那么这篇我们从存储引擎上来了解, 以MySQL默认存储引擎Innodb来说,看看有哪些锁?(MySQL版本为8) 1.Shared and Exclusive ...
- mysql锁相关讲解及其应用
一.mysql的锁类型 了解Mysql的表级锁 了解Mysql的行级锁 (1) 共享/排它锁(Shared and Exclusive Locks) 共享锁和排他锁是InnoDB引擎实现的标准行级别锁 ...
- Mysql 数据库意向锁意义
锁:对 “某种范围” 的数据上 “某种锁”1.“某种范围”:行.表 2.“某种锁”2.1 共享锁Shared Locks(S锁)1.兼容性:加了S锁的记录,允许其他事务再加S锁,不允许其他事务再加X锁 ...
随机推荐
- ubuntu firefox 选中变成了删除
在ubuntu下 我的firefox浏览器出现了问题.描述: 1.在firefox中所有能够删除的文字只要选中就自动删除了. 终端中 ibus-setup勾掉在应用窗口中启用内嵌编辑模式
- Discuz X2.5 用户名包含被系统屏蔽的字符[解决方法]
/uc_client/data/cache/badwords.php文件里的内容 删除并用 utf-8格式保存
- Monkeyrunner入门示例
准备工作1.安装Android SDK2.熟悉MonkeyRunner的API(http://article.yeeyan.org/view/37503/164523)3.一部Android手机或模拟 ...
- android EditText设置光标、边框和图标
控制边框形状,先在drawable中建一个xml文件:shape.xml <?xml version="1.0" encoding="utf-8"?> ...
- XML在JAVA项目中的作用
java项目中,xml文件一般都是用来存储一些配置信息 一般的编程, 多数用来存储配置信息 . 拿JDBC来说,可以把数据库连接字符串写到xml,如果要修改数据源,只需要改xml就可以了,没必要再去重 ...
- dedecms网站文章标题与简标题的调用问题
使用dedecms调用标签的时候,既然有,咱们就合理利用,如果没有,咱也可以自己去添加.以下介绍dedecms网站文章标题调用的一些技巧,希望大家能够合理运用. dedecms网站文章标题与简标题的调 ...
- css.day05
1. 外边距合并 不是bug 而是一个特性 (以最大的那个边距为准) 两个盒子是并列关系 两个盒子 父子级关系 1. border 2.overflow:hidden; 3. padding ...
- c# 学习笔记(二)
c#3.0 新特性 扩展方法 扩展方法允许编写和声明它的类之外的关联类的方法 用于没有源代码或者类是密封的,需要给类扩展新方法时 1.扩展方法必须被声明为static2.扩展方法声明所在的类必须被声 ...
- Asp.net 导航条【1】
PHP比较成熟的开放的源代码比较多,比方说PrestaShop,比方说Discuz!...... 虽然语言不同,但基本原理是一样的,有时间的话读一读,对学习ASP.NET应该是非常有好处的(唉,什么时 ...
- [转]Delphi导出Excel的设置操作
procedure CreatRepSheet(SheetName:String;PageSize,PageLay:Integer); {新建Excel工作簿.进行页面设置} begin {新建Exc ...