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

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

1.表级锁:

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

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

2.页级锁:

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

3.行锁:

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

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

4.注意:

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

相关推荐
Y001112369 分钟前
Day8-MySQL-多表查询-1
数据库·sql·mysql
2501_9454235414 分钟前
数据分析与科学计算
jvm·数据库·python
難釋懷19 分钟前
Redis分片集群伸缩
数据库·redis·缓存
swipe21 分钟前
JavaScript 对象操作进阶:从属性描述符到对象创建模式
前端·javascript·面试
阿贵---27 分钟前
实战:用Python开发一个简单的区块链
jvm·数据库·python
谪星·阿凯1 小时前
SQL注入漏洞进阶篇:从盲注到WAF绕过的全面解析
数据库·sql·计算机网络
快乐柠檬不快乐1 小时前
使用Python操作文件和目录(os, pathlib, shutil)
jvm·数据库·python
V1ncent Chen2 小时前
SQL大师之路 13 聚合函数和分组
数据库·sql·mysql·数据分析
赵渝强老师2 小时前
【赵渝强老师】高斯数据库(openGauss)的体系架构
数据库·postgresql·opengauss·gaussdb·国产数据库
IvorySQL2 小时前
开源同行,感谢有你|IvorySQL 社区邀您领取贡献者证书
数据库·postgresql·开源