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

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

1.表级锁:

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

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

2.页级锁:

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

3.行锁:

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

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

4.注意:

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

相关推荐
数据知道1 分钟前
MySQL业务数据量增长到单表成为瓶颈时,该如何做?
数据库·mysql·mysql优化
soft20015255 分钟前
深入理解 MySQL Buffer Pool 核心机制:初始化、free 链表与数据页流转
数据库·mysql·链表
晓13139 分钟前
SQL篇——【MySQL篇:运维】高可用架构搭建(主从、读写分离、分库分表)
android·数据库·mysql
JavaOpsPro25 分钟前
上云后mysql默认wait_timeout导致应用层很多连接不可用
数据库·mysql
GEM的左耳返28 分钟前
互联网大厂Java求职面试题解析与实战指导:涵盖核心技术栈与业务场景
java·数据库·spring boot·安全·微服务·消息队列·面试题
越甲八千31 分钟前
ASGI和AWSIG区别
数据库·python·sqlite
数据库学啊34 分钟前
性价比高的车联网时序数据库供应商有哪些
数据库·时序数据库
laocooon5238578861 小时前
C语言枚举知识详解与示例
java·c语言·数据库
honortech1 小时前
外部连接 redis-server 相关配置
数据库·redis·缓存
云计算小黄同学1 小时前
k8s中的服务通过secret访问数据库的实际案例
数据库·阿里云·kubernetes