前言
面试官:MySQL中的锁很多,你能说出来几种?
要是你能完整的回答出来,那就不用往下看了,如果有疑惑,就继续看喽。
锁分类
在 MySQL中锁有很多不同的分类。
从操作粒度看
-
从操作的粒度可分为表级锁、行级锁和页级锁。
-
表级锁:每次操作锁住整张表。锁定粒度大,发生锁冲突的概率最高,并发度最低。应用在MyISAM、InnoDB、BDB 等存储引擎中。
-
行级锁:每次操作锁住一行数据。锁定粒度最小,发生锁冲突的概率最低,并发度最高。应用在InnoDB 存储引擎中。
-
页级锁:每次锁定相邻的一组记录,锁定粒度界于表锁和行锁之间,开销和加锁时间界于表锁和行锁之间,并发度一般。应用在BDB 存储引擎中。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K4Z60E0y-1642995866263)(evernotecid://E84C5084-D306-4148-9C4E-5093680EB776/appyinxiangcom/16081606/ENResource/p9078)]](https://i-blog.csdnimg.cn/blog_migrate/d6cfbb2614657f52dd1a9b0f6b22b3d5.png)
-
从操作类型看
-
从操作的类型可分为读锁和写锁。
-
读锁(S锁):共享锁,针对同一份数据,多个读操作可以同时进行而不会互相影响。
-
写锁(X锁):排他锁,当前写操作没有完成前,它会阻断其他写锁和读锁。
-
IS锁、IX锁:意向读锁、意向写锁,属于表级锁

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

被折叠的 条评论
为什么被折叠?



