MySQL中常见锁
发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,1.MySQL服务器逻辑架构图片来源:MySQL官网每个连接都会在MySQL服务端产生一个线程(内部通过线程池管理线程)。比如:一个select语句进入,MySQL首先会在查询缓存中查找是否缓存了这个
千家信息网最后更新 2024年11月28日MySQL中常见锁
1.MySQL服务器逻辑架构
图片来源:MySQL官网
每个连接都会在MySQL服务端产生一个线程(内部通过线程池管理线程)。比如:一个select语句进入,MySQL首先会在查询缓存中查找是否缓存了这个select结果集,如果没有则继续执行解析→优化→执行得过程;否则会直接从缓存中获取结果集。
2.MySQL锁
共享锁与排他锁(Shared and Exclusive Locks)
共享锁和排他锁都是标准的行级锁。
1)共享锁S:标准的读锁,读锁允许多个连接可以同一时刻并发的读取同一资源,互不干扰。
2)排他锁X:又称写锁,一个写锁会阻塞其他的写锁或读锁,保证同一个时刻只有一个连接可以写入数据,同时防止其他用户对这个数据的读写。
锁类型 | 英文名 | 又称 | 同一时刻 | 共同点 |
---|---|---|---|---|
共享锁S | Shared Locks | 读锁 | 同一时刻,允许多个连接并发的读取同一资源,互不干扰。 | 两者都是锁机制本身的策略,通过这两种策略对锁进行了区分 |
排他锁X | Exclusive Locks | 写锁 | 同一时刻只有一个连接可以写入数据,同时防止其他用户对这个数据的读写。 | 同上 |
2.2意向锁(Intention Locks)
背景:多粒度锁的并存场景。
InnoDB支持多粒度锁(锁粒度:可分为行锁和表锁),允许行锁和表锁共存。为了实现多粒度级别的锁定,InnoDB使用了意图锁。
意向锁:表级别的锁。先提前声明的一个意向,并获取表级别的意向锁(共享意向锁IS或排他意向锁IX),如果获取成功,则稍后将要或正在(才被允许),对该表的某些行加锁(S或X)了。
注意:除了LOCK TABLES...WRITE,会锁住表中的所有行,其他场景意向锁实际锁不住任何行。
意向协议锁:在事务能够获取表中的行上的共享锁之前,他必须首先获取表上的IS锁或更强的锁。在事务能够获取表中的行上的独占锁之前,它必须首先获取表上的IX锁。
意向锁实现的背景是多粒度锁的并存场景,兼容性如下:
X | IX | S | IS | |
---|---|---|---|---|
X | Conflict | Conflict | Conflict | Conflict |
IX | Conflict | Compatible | Conflict | Compatible |
S | Conflict | Conflict | Compatible | Compatible |
IS | Conflict | Compatible | Compatible | Compatible |
Conflict:互斥
Compatible:兼容
意向锁仅表示意向,是一种较弱的锁,意向锁之间兼容并行(IS,IX之间兼容并行)。X与IS,IX互斥,S与IX互斥。意向锁是比X/S更弱的锁,存在一种预判的意义。先获取更弱的IS,IX锁,如果获取失败就不必再获取更强S,X锁。
意向
时刻
粒度
数据
场景
级别
线程
缓存
之间
事务
又称
只有
同时
多个
标准
用户
策略
结果
背景
资源
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
mc服务器测试
云服务器防护之道
网络安全意识形态安全
饥荒联机版专用服务器管理员权限
软件开发职业方面的优点
wlan网络安全性考虑
众安在线对网络安全保险
增量服务器
网络安全教育班会文档
知名的软件开发人员工资
定制网络技术服务口碑推荐
网络安全人视频
服务器安装操作系统2016
万维数据库连接失败
数据库xls文件
时空供应链数据库位置
数据库中心的定义
服务器ipmi关闭
校园网络安全工作会议讲话
徐州网络安全方案
软件开发公司资金筹措
服务器idc密码
公安部网络安全局处长
安卓软件开发拟器
一般软件开发公司多大
服务器如何设置默认当前登录账户
大智慧没有上海数据库
目前使用的网络安全软件有
思科网络技术大全
软件开发电脑编程工作累不累