返回顶部
首页 > 资讯 > 数据库 >MySQL中常见锁
  • 236
分享到

MySQL中常见锁

2024-04-02 19:04:59 236人浏览 安东尼
摘要

1.Mysql服务器逻辑架构      图片来源:mysql官网       

1.Mysql服务器逻辑架构

      图片来源:mysql官网
      MySQL中常见锁
      每个连接都会在Mysql服务端产生一个线程(内部通过线程池管理线程)。比如:一个select语句进入,MySQL首先会在查询缓存中查找是否缓存了这个select结果集,如果没有则继续执行解析→优化→执行得过程;否则直接从缓存中获取结果集。

2.MySQL

共享锁与排他锁(Shared and Exclusive Locks)

      共享锁和排他锁都是标准的行级锁
      1)共享锁S:标准的读锁,读锁允许多个连接可以同一时刻并发读取同一资源,互不干扰。
      2)排他锁X:又称写锁,一个写锁会阻塞其他的写锁或读锁,保证同一个时刻只有一个连接可以写入数据,同时防止其他用户对这个数据的读写

锁类型英文名又称同一时刻共同点
共享锁SShared Locks读锁同一时刻,允许多个连接并发的读取同一资源,互不干扰。两者都是锁机制本身的策略,通过这两种策略对锁进行了区分
排他锁XExclusive Locks 写锁同一时刻只有一个连接可以写入数据,同时防止其他用户对这个数据的读写。同上
2.2意向锁(Intention Locks)

      背景:多粒度锁的并存场景。
      InnoDB支持多粒度锁(锁粒度:可分为行锁表锁),允许行锁和表锁共存。为了实现多粒度级别的锁定,InnoDB使用了意图锁。
      意向锁表级别的锁。先提前声明的一个意向,并获取表级别的意向锁(共享意向锁IS或排他意向锁IX),如果获取成功,则稍后将要或正在(才被允许),对该表的某些行加锁(S或X)了。
      注意:除了LOCK TABLES...WRITE,会锁住表中的所有行,其他场景意向锁实际锁不住任何行。
      意向协议锁:在事务能够获取表中的行上的共享锁之前,他必须首先获取表上的IS锁或更强的锁。在事务能够获取表中的行上的独占锁之前,它必须首先获取表上的IX锁
      意向锁实现的背景是多粒度锁的并存场景,兼容性如下:

XIXSIS
XConflictConflictConflictConflict
IXConflictCompatibleConflictCompatible
SConflictConflictCompatibleCompatible
ISConflictCompatibleCompatibleCompatible

      Conflict:互斥
      Compatible:兼容
      意向锁仅表示意向,是一种较弱的锁,意向锁之间兼容并行(IS,IX之间兼容并行)。X与IS,IX互斥,S与IX互斥。意向锁是比X/S更弱的锁,存在一种预判的意义。先获取更弱的IS,IX锁,如果获取失败就不必再获取更强S,X锁。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中常见锁

本文链接: https://lsjlt.com/news/35251.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL中常见锁
    1.MySQL服务器逻辑架构      图片来源:MySQL官网       ...
    99+
    2024-04-02
  • mysql 常见锁类型
    表锁 & 行锁 在 MySQL 中锁的种类有很多,但是最基本的还是表锁和行锁:表锁指的是对一整张表加锁,一般是 DDL 处理时使用,也可以自己在 SQL 中指定;而行锁指的是锁定某一行数据或某几行,或行和行之间的间隙。行锁的加锁方法比较复...
    99+
    2023-09-24
    mysql 数据库
  • 常见的MySQL锁类型
    MySQL 中常见的锁类型,需要具体代码示例导言:在数据库中,当多个客户端同时对同一数据进行读取或修改时,会出现并发操作的问题。为了保证数据的一致性和完整性,数据库引擎采用了锁机制来控制对共享数据的访问。MySQL 作为一种常用的关系型数据...
    99+
    2023-12-21
    - 行锁 - 读锁 (共享锁) - 写锁 (排他锁)
  • java中常见的锁有哪些
    java中常见的锁有:1.乐观锁;2.悲观锁;3.自旋锁;4.偏向锁;5.公平锁;java中常见的锁有以下几种乐观锁java中乐观锁是一种乐观思想,总认为资源和数据不会被修改,并不会对数据进行上锁,但进行写入操作的时会判断数据是否被修改。悲...
    99+
    2024-04-02
  • 常见的MySQL锁问题及其解决方案
    MySQL 锁的常见问题与解决方案MySQL 是一种常用的关系型数据库管理系统,它使用锁来实现并发控制,保证数据的一致性和完整性。然而,MySQL 锁的使用也会带来一些问题。本文将介绍一些常见的 MySQL 锁的问题,并提供相应的解决方案。...
    99+
    2023-12-21
    解决方案 常见问题 MySQL
  • java中常见的几种锁有哪些
    公平锁/非公平锁公平锁是指多个线程按照申请锁的顺序来获取锁。非公平锁是指多个线程获取锁的顺序,并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁,有可能,会造成优先级反转或者饥饿现象。独享锁/共享锁独享锁是指该锁一次只能被一...
    99+
    2017-11-14
    java入门 java 常见
  • MYSQL中常见DDL语句
    DDL:对数据库以及数据库内部的对象进行创建、删除、修改等操作的语言,DDL语句更多的是由数据库管理员(DBA)使用,开发人员一般很少使用。 一、数据库: 查看数据库列表:show databases; 创建数据库:create data...
    99+
    2023-10-24
    数据库 mysql sql
  • mysql中常见的约束
    mysql 中常见的约束包括:主键约束、外键约束、唯一约束、非空约束、自增约束和检查约束。这些约束有助于确保数据完整性、提高数据质量、维护关系完整性并增强性能。 MySQL 中常见的约...
    99+
    2024-05-01
    mysql 数据丢失
  • Java中锁的常见知识点有哪些
    本篇文章给大家分享的是有关Java中锁的常见知识点有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。锁的概念可重入锁如果锁具备可重入性,则称作为可重入锁。像synchroni...
    99+
    2023-06-05
  • MySQL 常见报错
    记录一下方便查找 【Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by...
    99+
    2016-10-08
    MySQL 常见报错
  • mysql 常见问题
    事务级别 SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。Read Uncommi...
    99+
    2024-04-02
  • mysql 常见错误
    Lock wait timeout exceeded; try restarting transaction一些信息 1、 锁等待超时。是当前事务在等待其它事务释放锁资源造成的。可以找出锁资源竞争的表和语...
    99+
    2024-04-02
  • MySQL——常见问题
      NULL和空值的区别 空值不占空间,NULL值占空间。当字段不为NULL时,也可以插入空值。 当使用 IS NOT NULL 或者 IS NULL 时,只能查出字段中没有不为NULL的或者为 NULL 的,不能查出空值。 判断NULL ...
    99+
    2023-09-29
    mysql 数据库
  • MySQL并发时经典常见的死锁原因有哪些
    这篇文章主要介绍了MySQL并发时经典常见的死锁原因有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、mysql都有什么锁?MySQL...
    99+
    2024-04-02
  • MySQL中几种常见的日志
    前言: 在 MySQL 系统中,有着诸多不同类型的日志。各种日志都有着自己的用途,通过分析日志,我们可以优化数据库性能,排除故障,甚至能够还原数据。这些不同类型的日志有助于我们更清晰的了解数据库,在日常学习及运维过程中也会和这些日志打交道。...
    99+
    2015-01-20
    MySQL中几种常见的日志 数据库入门 数据库基础教程 数据库 mysql
  • MySql中常见问题有哪些
    这篇文章将为大家详细讲解有关MySql中常见问题有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 1、默认编码集问题在做前台数据展示的时候...
    99+
    2024-04-02
  • Golang并发操作中常见的读写锁详析
    互斥锁简单粗暴,谁拿到谁操作。今天给大家介绍一下读写锁,读写锁比互斥锁略微复杂一些,不过我相信我们今天能够把他拿下! golang读写锁,其特征在于 读锁:可以同时进行多个...
    99+
    2024-04-02
  • mysql日常使用中常见报错大全
    目录1)输入MYSQL命令,提示密码权限不正确; 报错信息2)登录MYSQL数据库时,报错socket不能连接; 报错信息3)通过IP PORT方式登录4)MYSQL命令行执行sho...
    99+
    2023-03-06
    mysql常见错误 mysql报错大全 mysql出错 mysql报错 MySQL安装报错
  • mysql常见笔试题
    一、Mysql常见笔试题 1、Mysql 中有哪几种锁? (1)表级锁:开销小,加锁快。不会出现死锁,锁定粒度大,发生锁冲突的概率高,并发度低。 (2)行级锁:开销大,加锁慢。会出现死锁,锁定粒度小,发生锁冲突的概率低,并发度高。...
    99+
    2014-11-09
    mysql常见笔试题
  • MySQL 常见str函数
    MySQL常见的字符串函数整理自官档。1.1     SUBSTR or SUBSTRINGSUBSTR(str,pos), SUBSTR(...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作