美文网首页
Mysql 锁概念

Mysql 锁概念

作者: Lrxc | 来源:发表于2020-03-25 10:42 被阅读0次

一 乐观锁

用数据版本(Version)记录机制实现,这是乐观锁最常用的一种实现方式。何谓数据版本?即为数据增加一个版本标识,一般是通过为数据库表增加一个数字类型的 “version” 字段来实现。

1、数据库表设计
三个字段,分别是id,value、version

select id,value,version from TABLE where id=#{id}

2、每次更新表中的value字段时,为了防止发生冲突,需要这样操作

update TABLE
set value=2,version=version+1
where id=#{id} and version=#{version};

二 悲观锁

共享锁和排它锁是悲观锁的不同的实现

2.1 共享锁

共享锁指的就是对于多个不同的事务,对同一个资源共享同一个锁。相当于对于同一把门,它拥有多个钥匙一样。
在执行语句后面加上lock in share mode就代表对某些资源加上共享锁了。

2.2 排它锁

排它锁与共享锁相对应,就是指对于多个不同的事务,对同一个资源只能有一把锁。
与共享锁类型,在需要执行的语句后面加上for update就可以了

三 行锁

行锁又分共享锁和排他锁,由字面意思理解,就是给某一行加上锁,也就是一条记录加上锁。

3.1 共享锁

在执行语句后面加上lock in share mode就代表对某些资源加上共享锁了。

3.2 排它锁

在需要执行的语句后面加上for update就可以了

四 表锁

只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁!

五 死锁

是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去

相关文章

  • 对于Mysql中锁的理解

    Mysql数据库中锁的概念非常多,这次我就来分享一下我对于Mysql中锁的理解首先我们先明确一下锁的概念:锁是计算...

  • Mysql 锁概念

    一 乐观锁 用数据版本(Version)记录机制实现,这是乐观锁最常用的一种实现方式。何谓数据版本?即为数据增加一...

  • Mysql中各种锁的理解

    一:引言--为什么mysql提供了锁 最近看到了mysql有行锁和表锁两个概念,越想越疑惑。为什么mysql要提供...

  • MySQL数据库锁机制之MyISAM引擎表锁和InnoDB行锁详

    MySQL中的锁概念 Mysql中不同的存储引擎支持不同的锁机制。比如MyISAM和MEMORY存储引擎采用的表级...

  • MySQL数据库锁机制之MyISAM引擎表锁和InnoDB行锁详

    MySQL中的锁概念 Mysql中不同的存储引擎支持不同的锁机制。比如MyISAM和MEMORY存储引擎采用的表级...

  • MySQL锁+案例分析

    1. 概念梳理 根据加锁的范围,MySQL里面的锁大致可以分为:全局锁、表级锁、行锁三类。 1.1. 全局锁 全局...

  • MYSQL 悲观锁和乐观锁

    前文我们提到了表锁,行锁的这些概念,今天我们来谈谈mysql的悲观锁和乐观锁。何为乐观锁?顾名思义,乐观锁就是乐观...

  • mysql 中的悲观锁和乐观锁

    悲观锁 mysql 数据库自带了锁机制,从某种意义来说“悲观锁”才能称之为锁,“乐观锁”是人为添加的概念。在我们的...

  • Mysql X锁,S锁、间隙锁

    1,Mysql X锁和S锁。 1)概念:利用数据库本身提供的锁机制(行级锁)来实现,锁定该行数据。trx_rows...

  • mysql锁的简单理解

    一.锁 我们通常概念里的锁,是用来处理线程安全问题,锁(latch)的对象是线程,而在mysql中通常所说的锁(l...

网友评论

      本文标题:Mysql 锁概念

      本文链接:https://www.haomeiwen.com/subject/tuhtuhtx.html