什么是锁机制?

锁机制是数据库管理系统(DBMS)的核心并发控制手段,用于在多个事务同时访问和修改数据时,维护数据的一致性和完整性。其核心思想是:当某个事务访问数据资源时,根据操作类型(读或写)先对数据加锁,从而防止其他事务进行冲突操作,直到该事务释放锁。这确保了并发事务能够“有序”地访问数据,避免产生脏读、不可重复读、幻读等问题。不同的数据库锁(如行锁、表锁)和不同的锁模式(如共享锁、排他锁)共同构成了复杂的锁体系,旨在平衡数据安全性与系统并发性能。

按锁级别分类,可分为共享锁、排他锁和意向锁。也可以按锁粒度分类,可分为行级锁、表级锁和页级锁。

本节主要介绍三种核心锁类型:共享锁、排他锁和意向锁:

特性共享锁 (S Lock)排他锁 (X Lock)意向锁 (I Lock)
名字Shared Lock
(S Lock)
Exclusive Lock
(X Lock)
Intention Lock
(I Lock)
主要作用保证读取数据时,数据不被其他事务修改。保证写入数据时,数据被独占访问,不被读取或修改。表级信号锁,声明事务意图,用于高效协调行锁与表锁的冲突。
生动类比共享阅读:多人可同时读同一份报纸,但不能涂改。独家写作:一人独占黑板书写,他人既不能看也不能写。仓库指示灯:红灯亮起表示内部正作业,提醒叉车(表锁)勿入。
兼容性兼容其他S锁
不兼容X锁
 不兼容其他X锁
 不兼容S锁
自我兼容:IX与IX、IS与IS兼容。
不兼容表锁:与欲加的表级S/X锁互斥。
性能影响低开销。允许多个读操作并发,对性能影响较小。高开销。强制串行化写入,并发度最低,易成为性能瓶颈。正收益大幅提升性能,通过避免全表扫描检查行锁,减少阻塞。

点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)