MySql InnonDB锁(未全部完成)
来源:互联网 发布:k11防水和js防水涂料 编辑:程序博客网 时间:2024/06/11 23:14
分享锁和分享锁(Shared and Exclusive Locks)
分享锁(S) 允许事务持有读取一行记录的锁
独占锁(X) 允许事务持有更新和删除一样记录的锁
当一个事务获取了一条记录的分享锁,则另一个事务只能立即获取到该记录的分享锁,而不能得到该记录的独占锁
当一个事务获取了一条记录的独占锁,则另一个事务不能立即获得该记录的任何锁
当一个事务尝试获取一个无法获得的琐时,该事务将阻塞,直到另一个事务释放对应的为止
意向锁(Intention Locks)
意向分享锁(IS):当用户将要获取个别记录的S锁时给记录加上该锁 ( SELECT ... LOCK IN SHARE MODE )
意向独占锁(IX):当用户将要获取个别记录的X锁时给记录加上该锁 ( SELECT ... FOR UPDATE )
意向锁协议:
如果要获取S锁,则必须先获取IS锁或者优先级更高的锁
如果要获取X锁,则必须先获取IX锁
意向锁不会阻塞其他事物除了对整张表的请求,如:LOCK TABLES ... WRITE
意向锁主要作用展示表内记录是否已被锁,或将被锁
记录锁(Record Locks)
记录锁总是使用在一个有索引的记录上
例如 SELECT c1 FROM t WHERE c1 = 10 FOR UPDATE
记录所可以防止其他任何事物对 t 表中c1 = 10的记录进行新增、修改或删除
间隙锁(Gap Locks)
间隙锁在两个索引记录之间,或者第一条索引记录之前,或者最后一条索引记录之后
间隙锁防止其他事务插入锁范围内的值
例如:
SELECT c1 FROM t WHERE c1 BETWEEN 10 and 20 FOR UPDATE
间隙锁防止插入c1值在10到20之间的值
如果一个查询用到了记录锁,则其不会获取间隙锁
间隙锁只纯粹的防止插入
Next-Key Locks
插入意向锁(Insert Intention Locks)
自增锁(Auto-Inc Locks)
谓词逻辑锁(Predicate Locks)
参考 https://dev.mysql.com/doc/refman/5.7/en/innodb-locking.html#innodb-shared-exclusive-locks
- MySql InnonDB锁(未全部完成)
- c语言个人通讯录(功能未全部完成)
- QT5.5下的USB HID热插拔检测,未全部完成,聊作记录。
- (Ryan的Koa系列博客)2.严谨模式(未全部完成)
- 开通的网站IP则为全部未分配及MYSQL和MSSQL都启动不了
- Ycnd GUI已全部完成
- 自定义表盘(未彻底完成)
- 全部未注册英文单词.cn和.net未注册分享
- MySQL 全部数据类型
- MySQL函数全部
- 等待多线程全部完成的方法
- SQL作业——ATM3(全部完成)
- jq判断页面图片全部加载完成
- javabean:最终块未正常完成
- 未做作业(已完成)
- # spring 源码学习笔记 未编辑完成
- 页面还未加载完成显示loading
- MySQL 安装未响应
- Java 创建 ARM 虚拟机磁盘类型选择的问题
- DefaultHttpClient,HttpClient,DefaultHttpClient使用详解
- Redis知识点详解
- win7进入系统是停留在“正在启动windows系统中”
- 做到这一点,你也可以成为优秀的程序员
- MySql InnonDB锁(未全部完成)
- Leetcode c语言-Remove Element
- sstream的一些技巧
- Python 基于固定 IP 来命名 ARM 虚拟机的实现
- 大数据Clouder专项技能认证课程:Quick BI企业报表制作
- iOS-导航栏遮盖布局
- 树莓派屏幕方向旋转0~270度(包括触摸屏和HDMI显示)
- Xlistview最最基础操作
- pg_dump使用注意事项