MySQL中常见锁
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,1.MySQL服务器逻辑架构图片来源:MySQL官网每个连接都会在MySQL服务端产生一个线程(内部通过线程池管理线程)。比如:一个select语句进入,MySQL首先会在查询缓存中查找是否缓存了这个
千家信息网最后更新 2025年11月08日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安全错误
数据库的锁怎样保障安全
辽宁省网络安全管理局
异地数据库会卡吗
法国fr的邮箱服务器管理员
仿伊对视频相亲软件开发
站群服务器如何配置
Picsart服务器错误
网站服务器涉及到的一些专业术语
经纪代理服务软件开发
医保卡提示与数据库信息不一致
向服务器传东西
国家安全网络安全教育
网络安全必备技能包
重要时节网络安全知识宣传
三不依赖网络安全
闲鱼里为什么这么多服务器电源
网络安全规划与实施方案
网络安全法二十一条二十五条
东莞奥普特软件开发待遇
服务器a620
软件开发设计类型
网络安全会议设备
影视服务器搭配
云顶之弈拳头账号怎么换服务器
大专计算机网络技术都学什么
什么属于常用的网络安全技术
软件开发后销售
权威域名服务器
彩铃安全接入服务器地址
为什么软件开发者不收费
浙江先进软件开发质量保障