当前位置: 首页 > news >正文

MySQL——九、锁

分类

  • 全局锁
  • 表级锁
  • 行级锁

全局锁

做全库的逻辑备份

flush tables with read lock;
unlock tables;

在InnoDB引擎中,我们可以在备份时加上参数–single-transaction参数来完成不加锁的一致性数据备份

mysqldump --single-transaction -uroot -p123456 itcast>itcast.sql

表级锁

表锁

  • 表共享读锁(read lock)

  • 表独占写锁(write lock)

-- 加锁
lock tables 表名... read/write
-- 释放锁
unlock tables 

元数据锁(meta data lock,MDL)

MDL加锁过程是系统自动控制,无需显示使用。MDL锁主要作用是维护表元数据的数据一致性,在表上有活动事务时,不可以对原数据进行写入操作。为了避免DML与DDL冲突,保证读写的正确性。

意向锁

避免DML在执行时,加的行锁与表锁的冲突,在InnoDB中引入了意向锁,使得表锁不用检查每行数据是否加锁,使用意向锁来减少表锁的检查。

  • 意向共享锁(IS):由语句select … lock in share mode 添加。与表锁共享锁(read)兼容,与表锁排它锁(write)互斥
  • 意向排他锁(IX):与表锁共享锁(read)及排他锁(write)都互斥。意向锁之间不会互斥。

行级锁

锁住对应的行数据,InnoDB的数据是基于索引组织的,行锁是通过对索引上的索引项加锁来实现的,而不是对记录加的锁
InnoDB有行级锁,而MyIsam没有

  • 行锁:锁定单个行记录的锁,防止其他事务对此进行update和delete。在RC,RR隔离级别下都支持
  • 间隙锁:锁定索引记录间隙,确保索引记录间隙不变,防止其他事务在这个间隙进行insert,产生幻读。在RR隔离级别下都支持
  • 临键锁:行锁和间隙锁组合,同时锁住数据,并锁住数据前面的间隙Gap。在PR隔离级别下支持。

行锁

  • 共享锁
  • 排他锁
    InnoDB的行锁是针对与索引加的锁,不通过索引条件检索数据,那么InnoDB将对表中的所有记录加锁,此时就会升级为表锁

间隙锁/临建锁

间隙锁可以共存,一个事务采用的间隙锁不会阻止另一个事务在同一个间隙上采用间隙锁。

  • 索引上的等值查询(唯一索引),给不存在的记录加锁时,优化为间隙锁
  • 索引上的等值查询(普通索引),向右遍历时最后一个值不满足查询时,退化为间隙锁
  • 索引上的范围查询(唯一索引),回访问到不满足条件的第一个值为止。
http://www.xdnf.cn/news/438733.html

相关文章:

  • 【Linux】Ext系列文件系统
  • 卷积神经网络全连接层详解:特征汇总、FCN替代与性能影响分析
  • SRM电子采购管理系统:Java+Vue,集成供应商管理,实现采购流程数字化与协同优化
  • PyQt5完整指南:从入门到实践
  • 刘强东 “猪猪侠” 营销:重构创始人IP的符号革命|创客匠人热点评述
  • 如何创建自动工作流程拆分Google Drive中的PDF文件
  • iOS视频编码详细步骤(视频编码器,基于 VideoToolbox,支持硬件编码 H264/H265)
  • 深度学习基础知识
  • RK3588 串行解串板,支持8路GMSL相机
  • 嵌入式Linux Qt开发:1、搭建基于ubuntu18.04的Qt开发环境及测试(解决Qt creator输入法问题)
  • python三方库sqlalchemy
  • 【网络协议】TCP、HTTP、MQTT 和 WebSocket 对比
  • 内存虚拟盘(RAMDisk)是什么?
  • Axure设计之轮播图——案例“一图一轮播”
  • 基于策略的强化学习方法之策略梯度(Policy Gradient)详解
  • 如何高效集成MySQL数据到金蝶云星空
  • TAOCMS漏洞代码学习及分析
  • 嵌入式自学第二十一天(5.14)
  • JVM 与云原生的完美融合:引领技术潮流
  • 【SpringBoot实战指南】集成Easy ES
  • OpenCV实现数字水印的相关函数和示例代码
  • QListWedget控件使用指南
  • 50. Pow(x, n)
  • 网络互联技术深度解析:理论、实践与进阶指南
  • stm32之FLASH
  • C++效率掌握之STL库:map set底层剖析及迭代器万字详解
  • 【node】如何把包发布到npm上
  • 3D 数据可视化系统是什么?具体应用在哪方面?
  • 【Linux网络】网络层
  • 微服务商城(1)开篇、服务划分