当前位置: 首页 > news >正文

【面试干货】MySQL 三种锁的级别(表级锁、行级锁和页面锁)

【面试干货】MySQL 三种锁的级别(表级锁、行级锁和页面锁)

  • 1、表级锁
  • 2、行级锁
  • 3、页面锁
  • 4、总结


💖The Begin💖点点关注,收藏不迷路💖

在这里插入图片描述

在 MySQL 数据库中,锁是控制并发访问的重要机制,可以保证数据的一致性和完整性。MySQL 提供了三种不同级别的锁:表级锁、行级锁和页面锁。本文将对这三种锁的级别进行详细介绍和比较。

1、表级锁

  • 特点开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,因此并发度最低。
  • 适用场景当对整张表进行操作时,适合使用表级锁。

2、行级锁

  • 特点开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,因此并发度也最高。
  • 适用场景:当对表中的某些行进行操作时,适合使用行级锁。

3、页面锁

  • 特点开销和加锁时间介于表锁和行锁之间;会出现死锁;锁定粒度介于表锁和行锁之间,因此并发度一般。
  • 适用场景一般情况下,较少使用页面锁,但在某些特定场景下,例如对页面大小有限制的存储引擎,可能会使用页面锁。

4、总结

  • 锁级别选择:根据具体情况选择合适的锁级别,权衡加锁速度、并发度和锁冲突的概率。

  • 避免死锁:无论是哪种级别的锁,在应用中都需要注意避免死锁的发生,可以通过合理的事务设计和加锁顺序来降低死锁的概率

在这里插入图片描述


💖The End💖点点关注,收藏不迷路💖

相关文章:

  • 力扣每日一题 6/8
  • expect自动化交互应用程序工具
  • 【文件导出2】导出html文件数据
  • C# 绘图及古诗填字
  • Android基础-进程间通信
  • 熟悉的软件架构风格及详细介绍
  • 自动驾驶人工智能
  • 【深度学习】之 卷积(Convolution2D)、最大池化(Max Pooling)和 Dropout 的NumPy实现
  • arm系统中双网卡共存问题
  • 区块链共识机制技术一--POW(工作量证明)共识机制
  • Transformer论文精读
  • App UI 风格,引领时尚
  • 无头+单向+非循环链表的实现
  • web学习笔记(六十五)
  • Recognize Anything: A Strong Image Tagging Model(RAM模型使用方法)
  • 深入了解以太坊
  • Android Volley源码解析
  • Android组件 - 收藏集 - 掘金
  • Docker 笔记(2):Dockerfile
  • httpie使用详解
  • HTTP那些事
  • orm2 中文文档 3.1 模型属性
  • PV统计优化设计
  • python学习笔记 - ThreadLocal
  • Redis字符串类型内部编码剖析
  • Redux系列x:源码分析
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 工程优化暨babel升级小记
  • 机器学习中为什么要做归一化normalization
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 使用Gradle第一次构建Java程序
  • 使用权重正则化较少模型过拟合
  • 探索 JS 中的模块化
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • $jQuery 重写Alert样式方法
  • (16)Reactor的测试——响应式Spring的道法术器
  • (C11) 泛型表达式
  • (ibm)Java 语言的 XPath API
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (备忘)Java Map 遍历
  • (二十四)Flask之flask-session组件
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (算法设计与分析)第一章算法概述-习题
  • (五)IO流之ByteArrayInput/OutputStream
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (一)kafka实战——kafka源码编译启动
  • (转)Sublime Text3配置Lua运行环境
  • (转)程序员技术练级攻略
  • ... 是什么 ?... 有什么用处?
  • ./configure、make、make install 命令
  • ./和../以及/和~之间的区别