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锁 ...
随机推荐
- XMPPFrameWork IOS 开发(一)xmpp简介
原始地址:XMPPFrameWork IOS 开发(一) XMPP : The Extensible Messaging and Presence Protocol 中文全称: 可扩展通讯和表示协议 ...
- hdu 4424 Conquer a New Region (并查集)
///题意:给出一棵树.树的边上都有边权值,求从一点出发的权值和最大,权值为从一点出去路径上边权的最小值 # include <stdio.h> # include <algorit ...
- Android的Touch系统简介(一
一.Android touch事件的相关概念 用户的Touch事件被包装成MotionEvent 用户当前的touch事件主要类型有: ACTION_DOWN: 表示用户开始触摸. ACTION_MO ...
- php session_set_save_handler 函数的用法(mysql)(转)
<?php /*============================文件说明======================================== @filename: s ...
- Linux驱动开发学习的一些必要步骤
1. 学会写简单的makefile 2. 编一应用程序,可以用makefile跑起来 3. 学会写驱动的makefile 4. 写一简单char驱动,makefile编译通过,可以insmod, ...
- Android(java)学习笔记215:多线程断点下载的原理(JavaSE实现)
1. 为什么需要多线程下载? 服务器的资源有限,同时的平均地分配给每个客户端.开启的线程越多抢占的服务的资源就越多,下载的速度就越块. 2. 下载速度的限制条件? (1)你的电脑手机宽带的带宽 ...
- ASP.NET过滤器、URL重写
过滤器可以对指定的URL访问进行拦截,并执行过滤器的方法,根据实际应用情况,在过滤器中修改请求的代码.判断会话信息,也可以做权限控制. 一:编写过滤器,实现URL重写并配置过滤 编写过滤器,就是编写一 ...
- android开发中的5种存储数据方式
数据存储在开发中是使用最频繁的,根据不同的情况选择不同的存储数据方式对于提高开发效率很有帮助.下面笔者在主要介绍Android平台中实现数据存储的5种方式. 1.使用SharedPreferences ...
- 基于GBT28181:SIP协议组件开发-----------第一篇环境搭建
原创文章,引用请保证原文完整性,尊重作者劳动,原文地址http://www.cnblogs.com/qq1269122125/p/3930018.html,qq:1269122125. SIP协议在安 ...
- jQuery中的阻止默认行为
在很多元素中都存在默认行为,例如表单中的submit按钮,a标签等等.如果想要消除其中的默认行为,就需要一个事件event的方法来消除他们的默认行为. 这个方法就是event.preventDefau ...