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

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

1.表级锁:

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

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

2.页级锁:

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

3.行锁:

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

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

4.注意:

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

相关推荐
Cosolar3 分钟前
Java 后端访问 https接口报 SSLHandshakeException 你遇到过吗
java·后端·面试
阿蒙Amon6 分钟前
C#每日面试题-简述匿名方法
java·面试·c#
木风小助理7 分钟前
PerconaXtraBackup工作原理深度解析
数据库
lkbhua莱克瓦248 分钟前
进阶-锁章节
数据库·sql·mysql·oracle·存储过程·
山峰哥10 分钟前
JOIN - 多表关联的魔法——3000字实战指南
java·大数据·开发语言·数据库·sql·编辑器
IT大白11 分钟前
4、Redis核心原理
数据库·redis·缓存
wzy062313 分钟前
Redis 集群迁移方案:从三节点到三节点的无缝过渡
数据库·redis·缓存
墨笔之风15 分钟前
MySQL与PostgreSQL选型对比及适用场景说明
数据库·mysql·postgresql
肥大毛16 分钟前
Oracle中Merge Using用法
数据库·oracle