数据库锁

本文探讨了在MySQL中处理并发读写时的锁系统,包括共享锁和排他锁的作用,以及通过意向锁和更细粒度的锁定策略提高并发性的方法。详细介绍了表锁和行级锁的特点及应用,旨在深入理解数据库并发控制机制。

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

无论何时,只要有多个查询需要在同一时刻修改数据,都会产生并发控制问题。下面讨论MySQL在2个层面上的并发控制:服务器层和存储引擎层。
在处理并发读或写的时候,可以通过实现一个由两种类型的锁组成的锁系统来解决问题:共享锁和排他锁(读锁和写锁)。
一种提高共享资源并发性的方式是让锁定的对象更有选择性,尽量只锁定需要修改的部分,而不是所有的资源。
下面介绍MySQL的两种最重要的锁策略:
表锁:
开销最小的锁策略,锁定整张表。
行级锁:
最大程度上支持并发处理,行级锁只在存储引擎层面实现,而MySQL服务层没有实现。
注:数据库逻辑结构
在这里插入图片描述
第一层,服务层(为客户端服务):为请求做连接处理,授权认证,安全等。
第二层,核心层:查询解析,分析,优化,缓存,提供内建函数;存储过程,触发器,视图。
第三层,存储引擎层,不光做存储和提取数据,而且针对特殊数据引擎还要做事务处理。

意向锁:
如果没有意向锁的话,则需要遍历所有整个表判断是否有行锁的存在,以免发生冲突
如果有了意向锁,只需要判断该意向锁与即将添加的表级锁是否兼容即可。因为意向锁的存在代表了,有行级锁的存在或者即将有行级锁的存在。因而无需遍历整个表,即可获取结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值