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

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

1.表级锁:

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

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

2.页级锁:

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

3.行锁:

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

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

4.注意:

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

相关推荐
q***718530 分钟前
【玩转全栈】----Django基本配置和介绍
数据库·django·sqlite
学习编程的Kitty30 分钟前
JavaEE进阶——Spring Boot项目
数据库·spring boot·java-ee
白露与泡影1 小时前
面试:Spring中单例模式用的是哪种?
spring·单例模式·面试
高铭杰1 小时前
mysql主备配置(对比postgresql)
数据库·mysql·replication
~~李木子~~7 小时前
MySQL 迁移总结报告
数据库·mysql
有梦想的攻城狮8 小时前
通过Lettuce实现PB3格式对象在Redis中的存储与查询
数据库·redis·缓存·pb3
CodeLongBear8 小时前
MySQL索引篇 -- 从数据页的角度看B+树
mysql·面试
桦08 小时前
MySQL【函数】
数据库·mysql
⑩-9 小时前
Redis(1)
数据库·redis·缓存
2301_803554529 小时前
主从同步配置的步骤
数据库