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

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

1.表级锁:

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

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

2.页级锁:

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

3.行锁:

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

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

4.注意:

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

相关推荐
有想法的py工程师22 分钟前
PostgreSQL 查询库中所有表占用磁盘大小、表大小
数据库·postgresql
旷世奇才李先生35 分钟前
奇哥面试记:SpringBoot整合RabbitMQ与高级特性,一不小心吊打面试官
spring boot·面试·java-rabbitmq
mrsk44 分钟前
🧙‍♂️ CSS中的结界术:BFC如何拯救你的布局混乱?
前端·css·面试
程序员清风1 小时前
程序员要在你能挣钱的时候拼命存钱!
后端·面试·程序员
R_AirMan2 小时前
深入浅出Redis:一文掌握Redis底层数据结构与实现原理
java·数据结构·数据库·redis
Hello.Reader2 小时前
RedisJSON 内存占用剖析与调优
数据库·redis·缓存
_一条咸鱼_2 小时前
Vulkan入门教程:源码级解析
android·面试·android jetpack
前端小巷子2 小时前
深入解析CSRF攻击
前端·安全·面试
每天开心2 小时前
🧙‍♂️闭包应用场景之--防抖和节流
前端·javascript·面试
DoraBigHead3 小时前
小Dora 的 JavaScript 修炼日记 · Day 1:变量三兄弟与作用域迷宫
前端·javascript·面试