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

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

1.表级锁:

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

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

2.页级锁:

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

3.行锁:

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

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

4.注意:

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

相关推荐
司铭鸿13 小时前
图论中的协同寻径:如何找到最小带权子图实现双源共达?
linux·前端·数据结构·数据库·算法·图论
友友马14 小时前
『MySQL』 - 事务 (二)
数据库·mysql·oracle
薛晓刚14 小时前
OceanBase的嵌入式数据库:vscode+python+seekdb
数据库
owCode14 小时前
OceanBase训练营miniob提测踩坑
数据库·oceanbase·数据库开发
wind_one114 小时前
16。基础--SQL--DQL-分页查询
数据库·sql
q***420514 小时前
python的sql解析库-sqlparse
数据库·python·sql
ashane131415 小时前
Flask-SQLAlchemy db 使用说明
数据库·oracle
川Princess15 小时前
【面试经验】百度Agent架构研发工程师一面
面试·职场和发展·架构·agent
FinTech老王15 小时前
集中式 vs 分布式数据库:金融用户如何选择?——金仓数据库的双架构实践与选型指南
数据库·分布式·金融
uhakadotcom15 小时前
Next.js 从入门到精通(1):项目架构与 App Router—— 文件系统路由与目录结构全解析
前端·面试·github