关于锁的粒度问题——面试

锁的粒度划分主要有三种:表级锁、页级锁和行锁

1.表级锁:

对整张表加锁,粒度最大,加锁的并发度最低,会导致其他事务无法访问该表,只有当前事务提交或者回滚后才能释放锁。表级锁适用于对表进行全表操作的场景,如表的重建、初始化等。

mysql5.5之前默认使用MYISAM引擎

2.页级锁:

对数据表中的一页加锁,粒度介于表级锁和行锁之间,可以提高并发度,但是会导致锁冲突的概率增加。页级锁适用于对表中大部分数据进行操作的场景。

3.行锁:

对数据表中的一行加锁,粒度最小,加锁的并发度最高,可以最大程度地支持并发操作。行锁适用于对表中少量数据进行操作的场景。

mysql5.5之前默认使用InnoDB引擎

4.注意:

需要注意的是,锁的粒度越小,并发度越高,但是锁的开销也越大,因此需要根据具体场景选择合适的锁粒度

相关推荐
Lee川9 小时前
打字机是怎么炼成的:Chat 流式输出深度解析
前端·后端·面试
不会敲代码19 小时前
我写了一个 HTML 文件,把 JS 事件循环彻底搞懂了
前端·javascript·面试
xwz小王子9 小时前
Science Robotics基础模型正在改写机器人集群的“游戏规则”
数据库·人工智能·机器人
茉莉玫瑰花茶9 小时前
LangGraph 介绍
服务器·网络·数据库
倒霉蛋小马9 小时前
【Redis】利用Redis构造全局唯一ID
数据库
夕除9 小时前
springboot--06
数据库·spring boot·mybatis
.NET修仙日记9 小时前
2026 .NET 面试八股文:高频题 + 答案 + 原理(面试加分技巧)
面试·职场和发展·.net·.net core·微软技术
2401_8330336210 小时前
golang如何实现MQTT主题通配符路由_golang MQTT主题通配符路由实现策略
jvm·数据库·python
运维小子10 小时前
JumpServer Applet 发布自定义远程应用:Oracle SQL Developer 自动登录
数据库·sql·oracle·jumpserver
m0_5967490910 小时前
Golang怎么实现方法集与接口的匹配_Golang如何理解值类型和指针类型实现接口的区别【详解】
jvm·数据库·python