面试官:MySQL中的锁你能说出来几种?

本文详细介绍了MySQL中的锁,包括表级锁、行级锁和页级锁,从操作粒度、类型(读锁、写锁、意向锁)和性能(乐观锁、悲观锁)三个方面进行了深入解析,帮助读者全面理解MySQL的锁机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

面试官:MySQL中的锁很多,你能说出来几种?
要是你能完整的回答出来,那就不用往下看了,如果有疑惑,就继续看喽。

锁分类

在 MySQL中锁有很多不同的分类。

从操作粒度看

  • 从操作的粒度可分为表级锁、行级锁和页级锁。

    • 表级锁:每次操作锁住整张表。锁定粒度大,发生锁冲突的概率最高,并发度最低。应用在MyISAM、InnoDB、BDB 等存储引擎中。

    • 行级锁:每次操作锁住一行数据。锁定粒度最小,发生锁冲突的概率最低,并发度最高。应用在InnoDB 存储引擎中。

    • 页级锁:每次锁定相邻的一组记录,锁定粒度界于表锁和行锁之间,开销和加锁时间界于表锁和行锁之间,并发度一般。应用在BDB 存储引擎中。
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K4Z60E0y-1642995866263)(evernotecid://E84C5084-D306-4148-9C4E-5093680EB776/appyinxiangcom/16081606/ENResource/p9078)]

从操作类型看

  • 从操作的类型可分为读锁和写锁。

    • 读锁(S锁):共享锁,针对同一份数据,多个读操作可以同时进行而不会互相影响。

    • 写锁(X锁):排他锁,当前写操作没有完成前,它会阻断其他写锁和读锁。

IS锁、IX锁:意向读锁、意向写锁,属于表级锁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员资料站

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值