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

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

1.表级锁:

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

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

2.页级锁:

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

3.行锁:

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

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

4.注意:

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

相关推荐
计算机毕设定制辅导-无忧学长7 小时前
西门子 PLC 与 Modbus 集成:S7-1500 RTU/TCP 配置指南(一)
服务器·数据库·tcp/ip
程序员柳8 小时前
基于微信小程序的校园二手交易平台、微信小程序校园二手商城源代码+数据库+使用说明,layui+微信小程序+Spring Boot
数据库·微信小程序·layui
梦在深巷、8 小时前
MySQL/MariaDB数据库主从复制之基于二进制日志的方式
linux·数据库·mysql·mariadb
IT乌鸦坐飞机9 小时前
ansible部署数据库服务随机启动并创建用户和设置用户有完全权限
数据库·ansible·centos7
IT_10249 小时前
Spring Boot项目开发实战销售管理系统——数据库设计!
java·开发语言·数据库·spring boot·后端·oracle
天涯学馆9 小时前
前端开发也能用 WebAssembly?这些场景超实用!
前端·javascript·面试
祁思妙想10 小时前
八股学习(三)---MySQL
数据库·学习·mysql
惊骇世俗王某人10 小时前
1.MySQL之如何定位慢查询
数据库·mysql
秦歌66611 小时前
向量数据库-Milvus快速入门
数据库·milvus
Edingbrugh.南空12 小时前
Flink SQLServer CDC 环境配置与验证
数据库·sqlserver·flink