行级锁是 MySQL 中锁定粒度最细的一种锁,行级锁能大大减少数据库操作的冲突,行级锁分为共享锁和排他锁两种。

共享锁(Share Lock)

共享锁又称读锁,是读取操作创建的锁。其他用户可以并发读取数据,但任何事务都不能对数据进行修改(获取数据上的排他锁),直到已释放所有共享锁。

如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。获准共享锁的事务只能读数据,不能修改数据。

用法

SELECT ... LOCK IN SHARE MODE;

在查询语句后面增加LOCK IN SHARE MODE,MySQL 就会对查询结果中的每行都加共享锁,当没有其他线程对查询结果集中的任何一行使用排他锁时,可以成功申请共享锁,否则会被阻塞。其他线程也可以读取使用了共享锁的表,而且这些线程读取的是同一个版本的数据。

排他锁(Exclusive Lock)

排他锁又称写锁、独占锁,如果事务T对数据A加上排他锁后,则其他事务不能再对A加任何类型的封锁。获准排他锁的事务既能读数据,又能修改数据。

用法

SELECT ... FOR UPDATE;

在查询语句后面增加FOR UPDATE,MySQL 就会对查询结果中的每行都加排他锁,当没有其他线程对查询结果集中的任何一行使用排他锁时,可以成功申请排他锁,否则会被阻塞。

意向锁(Intention Lock)

意向锁是表级锁,其设计目的主要是为了在一个事务中揭示下一行将要被请求锁的类型。InnoDB 中的两个表锁:

意向共享锁(IS):表示事务准备给数据行加入共享锁,也就是说一个数据行加共享锁前必须先取得该表的IS锁;

意向排他锁(IX):类似上面,表示事务准备给数据行加入排他锁,说明事务在一个数据行加排他锁前必须先取得该表的IX锁。

意向锁是 InnoDB 自动加的,不需要用户干预。

对于INSERT、UPDATE和DELETE,InnoDB 会自动给涉及的数据加排他锁;对于一般的SELECT语句,InnoDB 不会加任何锁,事务可以通过以下语句显式加共享锁或排他锁。

共享锁:SELECT ... LOCK IN SHARE MODE;

排他锁:SELECT ... FOR UPDATE;

mysql普通查询排他锁_MySql 共享锁 排他锁相关推荐

  1. mysql排他锁_mysql共享锁与排他锁

    mysql锁机制分为表级锁和行级锁,本文就和大家分享一下我对mysql中行级锁中的共享锁与排他锁进行分享交流. 共享锁又称为读锁,简称S锁,顾名思义,共享锁就是多个事务对于同一数据可以共享一把锁,都能 ...

  2. mysql update 排他锁_Mysql 共享锁(lock in share mode),排他锁(for update)

    共享锁(lock in share mode) 简介 允许不同事务之前共享加锁读取,但不允许其它事务修改或者加入排他锁 如果有修改必须等待一个事务提交完成,才可以执行,容易出现死锁 共享锁事务之间的读 ...

  3. MySQL 共享排他锁_mysql 共享排他锁

    1.基础知识 共享锁又叫S锁(Share Locks),共享锁就是多个事务对于同一数据可以共享一把锁,都能访问到数据,但是只能读不能修改. 排他锁又叫X锁(eXclusive Locks,记为X锁), ...

  4. mysql 表级锁_MySQL行级锁和表级锁

    锁定用于确保事务完整性和数据库一致性. 锁定可以防止用户读取其他用户正在更改的数据,并防止多个用户同时更改相同的数据. 如果不使用锁定,数据库中的数据可能在逻辑上变得不正确,而针对这些数据进行查询可能 ...

  5. mysql表级锁和行级锁_MySQL表级锁和行级锁

    一:概述 相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制.比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking ...

  6. mysql 事务 查询 范围加锁_MySQL死锁系列-常见加锁场景分析

    本文我们就从原理走向实战,分析常见 SQL 语句的加锁场景.了解了这几种场景,相信小伙伴们也能举一反三,灵活地分析真实开发过程中遇到的加锁问题. 如下图所示,数据库的隔离等级,SQL 语句和当前数据库 ...

  7. mysql suoyin 和锁_Mysql索引与锁

    Mysql索引与锁 Mysql索引与锁 本文以Mysql5.7为例测试. 1:mysql索引方法 Mysql的索引方法分为btree索引和hash索引. hash索引:是通过hash计算后比较,所以只 ...

  8. mysql a锁_MYSQL中的锁

    前言 刚开始接触MYSQL,对其锁机制并不了解,在项目里面,针对死锁以及锁竞争,约定了两条规则. 对涉及多个业务表的更新,要遵守一定的顺序,如按照TABLE-A,TABLE-B,TABLE-C的次序 ...

  9. mysql s x锁_mysql 的S 锁和X锁的区别

    共享锁和排它锁 MySQL的锁系统:shared lock和exclusive lock(共享锁和排他锁,也叫读锁和写锁,即read lock和write lock) 读锁是共享的,或者说是相互不阻塞 ...

最新文章

  1. 2. 编程规范和编程安全指南--C/C++
  2. cf1526E. Oolimry and Suffix Array(未解决)
  3. 计算机中Git配置环境变量 - 教程篇
  4. Python的网络编程[1] - FTP 协议[1] - 使用 pyftplib 建立 FTP 服务器
  5. UE5 使用Spine插件
  6. Word中插入三线格算法公式,放大不变形
  7. linux下桌面编程软件,慧编程桌面端下载|慧编程桌面版 V1.2.0 Linux版 下载_当下软件园_软件下载...
  8. 你真的懂智慧园区数字平台?快来看看吧
  9. Windows命令之tracert命令
  10. Hive基础学习文档和入门教程
  11. 领导逼迫员工离职的10大套路
  12. [LiteratureReview]A survey of image semantics-based visual simultaneous localization and mapping....
  13. 这次玩大的!全国软件测试培训机构名单~
  14. BentoML核心概念(一):服务定义
  15. 大白话5分钟带你走进人工智能-第十八节逻辑回归之交叉熵损失函数梯度求解过程(3)
  16. android手机酷狗缓存,酷狗音乐(com.kugou.android) - 10.6.5 - 应用 - 酷安
  17. CS是什么?为什么信息化企业纷纷办理CS证书?有什么好处?
  18. 关于提取图片中文字区域的算法和实现方法
  19. word中如何删除换行符(多余的回车)
  20. 09,final、权限、内部类、引用类型

热门文章

  1. 基于Modbus协议的C#串口工具开发
  2. 计算机专业用轻薄本还是游戏本,游戏笔记本电脑如何选择,轻薄本和游戏本买哪个?...
  3. 服务器整体爆率如何修改,土豪玩家是怎么玩游戏的?一口气收购全区物资,逼得官方修改爆率!...
  4. ubntu18.04下载wps
  5. tgp打开对计算机更改,电脑中TGP如何关闭开机启动_电脑中关闭TGP开机启动的步骤...
  6. 超宽屏幕比例_显示器长宽比是越来越大了吗
  7. 下载被迅雷屏蔽的影视资源
  8. 关于unity客户端防作弊(内存数据被修改)
  9. easyui-combotree指定key和text
  10. ocr图像预处理-图像分割、文字方向校正