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

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

1.表级锁:

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

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

2.页级锁:

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

3.行锁:

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

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

4.注意:

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

相关推荐
神王宝宝 王者小学1 天前
HBase: 看上去很美
大数据·数据库·hbase
io无心1 天前
Shardingsphere5分库分表
数据库·mysql
wWYy.1 天前
Mysql:主键索引 唯一索引 普通索引 前缀索引
数据库·mysql
宝杰X71 天前
Android Room3 多平台数据库
android·数据库
城管不管1 天前
第六次面试2026.8.5北京一面已OC
面试·职场和发展
kyriewen1 天前
我排查了一个React内存泄漏——罪魁祸首是这3个被忽略的清理函数
前端·javascript·面试
sky_8106131 天前
Oracle ERP 各模块业务管理功能及底层表说明
数据库·oracle
windliang1 天前
Claude Code 源码分析(七):Skill 如何进入 Agent
前端·人工智能·面试
缓冲中请稍后1 天前
React Router 完全指南:从 HashRouter 到 BrowserRouter
前端·面试
YMatrix 官方技术社区1 天前
CittaBase vs. Neo4j :原生图性能实测与混合检索实践
数据库·功能测试·ymatrix