【数据库】封锁技术

数据库并发操作可能导致丢失更新、读脏数据和不可重复读等问题。为解决这些问题,采用封锁技术,如排他锁(X锁)和共享锁(S锁)。排他锁禁止其他事务对数据进行任何操作,而共享锁只允许读取。封锁协议分为一级、二级和三级,逐步加强并发控制,防止各种问题。此外,乐观锁和悲观锁也是解决此类问题的手段,但其与共享锁和排他锁的区别有待深入理解。
摘要由CSDN通过智能技术生成

一、前言:

    数据库的并发操作通常会带来三个问题:丢失更新、读脏数据、不可重复读。解决这些问题就需要用到数据库的封锁机制进行控制,但封锁机制的引入又引起了一系列问题:性能下降、死锁等。

    1、丢失更新:一个事务的更新覆盖了其他事务的更新结果。例如用户A把值从8改到了5,用户B把值从5改到了8,则用户A丢失了它的更新。

    2、读脏数据:事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,事务T1由于某种原因被撤销,这时事务T1修改过的数据恢复原值,事务T2读到的数据就和数据库中的数据不一致,是错误的数据。又称“脏”数据。

    3、不可重复读:事务T1读取数据后,事务T2执行了更新操作。而事务T1使用的仍然是更新前的值,造成了数据不一致性。

        为了解决这些并发操作带来的问题。我们需要引入并发控制。主要方法是封锁技术。

评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值