数据库锁机制简介

本文介绍了数据库锁的基本概念,包括悲观锁和乐观锁,以及共享锁、排他锁和更新锁这三种类型的锁。悲观锁在读取数据时即加锁,防止并发修改;乐观锁则在更新时检查数据是否被修改。共享锁允许多个事务读取,排他锁则禁止其他事务对数据的读写。更新锁用于避免死锁,先锁定资源再进行更新。
摘要由CSDN通过智能技术生成

什么是锁:

易于理解的方式,就是在并发操作的情况下,一个用户对数据库中数据进行操作时把他锁住,防止别的用户也在此时对该数据进行操作,这样最终更新的数据不是完整的,不能记录两个用户做的更新。

锁的分类:

锁的分类分为两种方式,可以分为悲观所、乐观锁,也可以分成排他锁,共享锁和更新锁。

具体分类结构:
悲观锁{排他锁、共享锁、更新锁}
乐观锁

悲观锁:

也称之为互斥锁。字面理解,是一种消极的锁,就是在用户从数据库拿数据的时候就会认为在此期间一定有别的用户也会拿这条数据,所以每次拿数据的时候都会给数据上锁,防止别的用户在此期间对此条数据更改。

悲观锁通常是依靠数据库本身提供的锁机制来实现的。

乐观锁:

与悲观锁相对应,是一种积极的锁,在用户从数据库中拿数据的时候认为在此期间一定不会有别的用户对这条数据进行操作,所以在每次拿数据的时候不会给数据上锁,但这样如何保证数据库的完整性和一致性呢?就是在对数据进行更新的时候判断,数据库中的数据和自己读出来的数据是否相同:)实现方式有三种:

  • 通过版本号控制:在每个数据结构中加入版本号标识,每个用户对数据进行操作的时候要对版本号进行+1然后更新
  • 通过时间戳控制:在每次对数据更新的时候同时更新时间戳
  • 通过待更新字段控制:每次更新的时候判断数据库中的待更新数据和自己取出来的待更新数据是否相同

共享锁:(摘自

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值