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

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

1.表级锁:

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

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

2.页级锁:

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

3.行锁:

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

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

4.注意:

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

相关推荐
June bug1 分钟前
(#数组/链表操作)合并两个有重复元素的无序数组,返回无重复的有序结果
数据结构·python·算法·leetcode·面试·跳槽
一只自律的鸡9 分钟前
【MySQL】第十一章 存储过程和存储函数
数据库·mysql
翔云12345613 分钟前
MySQL 中的 utf8 vs utf8mb4 区别
数据库·mysql
数据知道22 分钟前
PostgreSQL 实战:索引的设计原则详解
数据库·postgresql
老毛肚32 分钟前
Spring 6.0基于JDB手写定制自己的ROM框架
java·数据库·spring
CodeBlossom38 分钟前
MySQL进阶 索引
数据库·mysql
cyforkk1 小时前
03、Java 基础硬核复习:流程控制语句的核心逻辑与面试考点
java·开发语言·面试
未来之窗软件服务1 小时前
数据库优化提速(四)数据库数据批量补齐—仙盟创梦IDE
数据库·数据库调优·仙盟创梦ide·东方仙盟
optimistic_chen1 小时前
【Redis系列】分布式锁
linux·数据库·redis·分布式·缓存
源代码•宸1 小时前
Leetcode—47. 全排列 II【中等】
经验分享·后端·算法·leetcode·面试·golang·深度优先