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

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

1.表级锁:

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

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

2.页级锁:

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

3.行锁:

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

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

4.注意:

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

相关推荐
ServBay12 小时前
为什么 PostgreSQL 就是比 MySQL 香?
数据库·mysql·postgresql
m0_4636722012 小时前
golang如何实现群聊功能_golang群聊功能实现策略
jvm·数据库·python
_3762715312 小时前
如何利用 Provide 注入 API 实例?解决组件库依赖全局接口痛点
jvm·数据库·python
工业甲酰苯胺12 小时前
Redis--集群搭建与主从复制原理
数据库·redis·php
2401_8504916512 小时前
如何用 keys 与 values 分别提取 Map 的所有键或所有值
jvm·数据库·python
2301_8159019712 小时前
MySQL从库同步速度慢的硬件原因_分析磁盘性能与内存占用
jvm·数据库·python
2401_8463395612 小时前
SQL如何检测分组内是否存在满足条件的数据_EXISTS结合分组
jvm·数据库·python
iAm_Ike13 小时前
Bootstrap中常用的文本颜色、背景颜色及边框色类
jvm·数据库·python
hjhcos13 小时前
【pgsql】Ubuntu备份和清理数据库postgresql
数据库·ubuntu·postgresql
m0_7414817813 小时前
CSS如何实现单选按钮自定义样式_利用伪元素隐藏默认UI
jvm·数据库·python