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

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

1.表级锁:

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

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

2.页级锁:

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

3.行锁:

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

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

4.注意:

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

相关推荐
swIn KWAL14 分钟前
【MySQL】环境变量配置
数据库·mysql·adb
shark222222217 分钟前
【JOIN】关键字在MySql中的详细使用
数据库·mysql
RATi GORI18 分钟前
MySQL中的CASE WHEN语句:用法、示例与解析
android·数据库·mysql
坊钰23 分钟前
Java 死锁问题及其解决方案
java·开发语言·数据库
onebound_noah1 小时前
【实战教程】如何通过API快速获取淘宝/天猫商品评论数据(含多语言Demo)
大数据·数据库
史蒂芬_丁2 小时前
Qt, C++数据类型扩展问题
数据库·c++·qt
lpfasd1232 小时前
MariaDB Docker容器权限配置问题分析与解决方案
数据库·docker·mariadb
Yvonne爱编码4 小时前
数据库---Day2 数据库操作
数据库
BduL OWED4 小时前
Redis之Redis事务
java·数据库·redis