【多线程】各种锁简要介绍

本文介绍了数据库中的各种锁,包括表级锁、页级锁、行级锁、共享锁、排它锁的概念。重点讨论了乐观锁和悲观锁的工作原理,它们在不同场景下的应用,并提到了公平锁和非公平锁、可重入锁等概念。文章还提及了乐观锁在更新数据时的重试策略,以防止并发问题。
摘要由CSDN通过智能技术生成

各种锁简要介绍

1、表级锁(锁定整个表)

2、页级锁(锁定一页)

3、行级锁(锁定一行)——锁索引,如果没有索引,InnoDB会通过隐藏的聚簇索引来对记录加锁(对表中所有数据加锁,和表锁差不多)

4、共享锁(S锁,MyISAM 叫做读锁)

可以在一个资源加多个共享锁(允许多个事务读),但也得所有共享锁都释放之后才能修改。
select * from table lock in share mode

5、排他锁(X锁,MyISAM 叫做写锁)——数据库增删改操作默认加排它锁,查询不加锁。

一个资源只能加一把排它锁,加锁后,自身可以进行增删改查,其他人无法进行任何操作。
select * from table for update

6、悲观锁(抽象性,不真实存在这个锁

实际采用了排它锁实现,影响吞吐,因此适用于写操作居多、强一致性、对吞吐要求不高的场景;

7、乐观锁(抽象性,不真实存在这个锁

靠表设计和代码实现,乐观锁更新有一定风险失败,因此适用于查询操作居多的场景。


一般是加versio

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值