Mysql中的那些锁

表锁和行锁

表锁:一锁锁整张表,mysql中锁定颗粒度最大的一种,针对非索引字段加的锁。MyISAM和InnoDb都支持。

行锁:一锁只锁整行,锁定颗粒度最小,针对索引字段加的锁。MyISAM不支持,InnoDb支持。

PS:行锁是针对索引字段加的锁,如果where没有命中索引的话,可能会加表锁。

行锁的类型

记录锁:单个记录的锁,只能锁住已存在的数据,

间隙锁:锁定一个范围的行记录,不包括他本身,可以避免这个范围内插入数据。当使用的条件查询是范围时,会使用间隙锁。

临键锁:锁定一个范围的行记录,包括他本身。

PS:在InnoDb默认的可重复读的隔离级别下,默认使用的是临键锁,如果去操作的索引是主键索引或者唯一索引,会优化为记录锁。

共享锁和排他锁

也叫读写锁,行锁和表锁都有共享锁和排他锁。

共享锁:读锁,事务在读取记录时获取的锁,多个事务之间可以共享。

排他锁:写锁,事务在修改记录时获取的锁,多个事务之间不能是互斥的,不能共享。

意向锁

意向锁也分行级意向锁和表级意向锁,用来判断有没有被加锁。

意向共享锁:在加共享锁之前,要先获取意向共享锁。

意向排他锁:在加排他锁之前,要先获取意向排他锁。

相关推荐
wespaul2 小时前
VeapAI 自然语言操作实战|第 05 篇:向量与召回——从知识条目到可检索资产
大数据·数据库·人工智能·milvus
一只鹿鹿鹿7 小时前
政务外网整体设计方案(PPT)
大数据·数据库·web安全·系统安全·流程图·政务
2603_965148117 小时前
社区与学习资源:从入门到精通的API选品学习路径
数据库·人工智能·python·学习·数据挖掘
for_ever_love__7 小时前
MySQL ORDER BY 排序优化:从 Using filesort 到索引有序扫描(含双路 / 单路排序原理)
java·mysql·优化·存储·by·order·filesort
AI砖家7 小时前
安全进入 Agent Loop:2027 年 Coding Agent 的决胜点
数据库·安全·codex·vibecoding
wangqiaowq7 小时前
SQL server C盘空间占满的处理
数据库·sql
文人sec8 小时前
SQL基础入门笔记 | 从零基础到掌握核心查询语句
数据库·笔记·sql
数字新视界8 小时前
机房动环监控提升运维效率
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
SelectDB技术团队8 小时前
冷热分层从建到验:Storage Policy 创建、表级与分区级绑定、SHOW TABLETS 验证的完整命令
大数据·数据库·elasticsearch·搜索引擎·数据分析·apache doris·冷热分层
lambo mercy10 小时前
Day3:结构化输出
java·数据库·oracle