表级锁

MySQL表级锁分为读锁和写锁。

读锁

用法:LOCK TABLE table_name [ AS alias_name ] READ

释放锁使用UNLOCK tables.可以为表使用别名,如果一旦使用别名在使用的时候也必须采用别名。成功申请读锁的前提是当前没有线程对该表使用写锁,否则该语句会被阻塞。申请读锁成功后,其他线程也可以对该表进行读操作,但不允许有线程对其进行写操作,就算是当前线程也不允许。当锁住了A表之后,就只能对A表进行读操作,对其他表进行读操作会出现错误(tablename was not locked with LOCK TABLES)

写锁

用法: LOCK TABLE table_name [AS alias_name] [ LOW_PRIORITY ] WRITE

同样也可以使用别名,与读锁不同的是,写锁中可以指定锁的优先级。LOW_PRIORITY是一种比读锁更低优先级的锁,当多个线程同时申请多种锁(LOW_PRIORITY,READ,WRITE)时,LOW_PRIORITY的优先级最低。读锁申请成功的前提是没有线程对表加读锁和其他写锁,否则会被阻塞。

表级锁在MyISAM和innoDB中都有用到,创建锁的开销小,不会出现死锁,由于锁定的是整张表,所以并发度低。当需要频繁对大部分数据做 GROUP BY 操作或者需要频繁扫描整个表时,推荐使用表级锁。

行级锁

行级锁是Mysql中锁定粒度最细的一种锁,能大大减少数据库操作的冲突,由于其粒度小,加锁的开销最大。行级锁分为共享锁和排他锁。

共享锁(S LOCK)

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

排他锁(X LOCK)

用法:SELECT ...LOCK FOR UPDATE;
Mysql会对查询结果中的每行都加排他锁,当没有其他线程对查询结果集中的任何一行使用排他锁时,可以成功申请排他锁,否则会被阻塞。
行级锁都是基于索引的,如果一条SQL语句用不到索引是不会使用行级锁的,会使用表级锁。行级锁的缺点是:由于需要请求大量的锁资源,所以速度慢,内存消耗大。

Mysql 的表级锁和行级锁相关推荐

  1. mysql表级锁和行级锁

    表级锁和行级锁对比: 表级锁: Mysql中锁定 粒度最大 的一种锁,对当前操作的整张表加锁,实现简单,资源消耗也比较少,加锁快,不会出现死锁.其锁定粒度最大,触发锁冲突的概率最高,并发度最低,MyI ...

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

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

  3. mysql面试常问 1: 谈谈MySQL表级锁和行级锁

    谈谈MySQL表级锁和行级锁 表级锁与索引无关 行级锁与索引的关系呢??答案是有关系的,但是要具体分析不同情况 主键索引与 行级锁的关系 非主键索引与行级锁的关系 实验如下: CREATE TABLE ...

  4. mysql是表级锁还是行级锁_带你了解MySQL数据库中的全局锁、表级锁、行级锁

    在 MySQL 数据库中,有很多各种各样的锁,这些锁大致可以分为三类:全局锁.表级锁.行级锁.这篇文章小编就带你简单了解一下这三种锁. 1. 全局锁 全局锁是粒度比较大的锁,基本上也使用不上,就像我们 ...

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

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

  6. mysql表级锁和行级锁_Mysql的表级锁和行级锁

    表级锁 MySQL表级锁分为读锁和写锁. 读锁 用法:LOCK TABLE table_name [ AS alias_name ] READ 释放锁使用UNLOCK tables.可以为表使用别名, ...

  7. MySQL - 全局锁、表级锁、行级锁、元数据锁、自增锁、意向锁、共享锁、独占锁、记录锁、间隙锁、临键锁、死锁

    # 前言 本篇只介绍 MySQL 锁的基本知识. 我的 MySQL 版本是 MySQL 5.7.34, 建议使用 MySQL 5.6 及之后的版本. ## 先上一个图 ## 为什么要使用锁? 个人理解 ...

  8. MySql: 表级锁、行级锁、共享锁、排他锁、乐观锁、悲观锁

    1.表级锁与行级锁 表级锁: table-level locking,锁住整个表. 开销小,加锁快. 不会死锁(一次性加载所需的所有表). 锁粒度大,发生锁冲突概率大,并发效率低. 适合查询. 行级锁 ...

  9. 【MySQL】如何使用MySQL锁(全局锁、表级锁、行级锁)?

    文章目录 概述 一.全局锁 介绍 语法 特点 二.表级锁 介绍 表锁 元数据锁 意向锁 三.行级锁 介绍 行锁 间隙锁&临键锁 概述 锁是计算机协调多个进程或线程并发访问某一资源的机制.在数据 ...

最新文章

  1. mysql 获取倒数第二_如何从MySQL中的表中获取倒数第二条记录?
  2. Linux学习之系统编程篇:exec 函数族
  3. GuavaCache学习笔记二:Java四大引用类型回顾
  4. ubuntu安装扩展在phpinfo显示不出来的解决办法
  5. java 基本类型 引用类型_Java中的基本类型和引用类型变量的区别
  6. 下载丨9月数据库技术通讯:Redo日志丢失,重建遭遇ORA-16433处理
  7. Git版本恢复命令reset(转载)
  8. Sublime 编译运行JavaScript
  9. vscode 日志文件_VSCode使用WSL环境开发C语言配置
  10. 移动硬盘不在计算机显示,Win7移动硬盘在电脑上不显示怎么办?移动硬盘不显示盘符的解决办法...
  11. Centos下安装Pure-ftpd
  12. 学习笔记---ih5_九宫格_拼图
  13. 语句摘抄——第12周
  14. python 数据分析核心--pandas
  15. Element 中时间选择器配置 本月 及 上个月 快捷方式
  16. eating的中文意思_Eating是什么意思中文
  17. 自考计算机原理,自考计算机原理考点.doc
  18. 高分SCI都在用 P for trend,快来看看吧
  19. 每日新闻 | Gartner分析和商业智能平台魔力象限公布,阿里云Quick BI入选
  20. 2022年全国职业院校技能大赛(中职组)网络安全竞赛试题(10)(总分100分)

热门文章

  1. echarts 地图实现轮播(二)
  2. 项目中缺少maven dependencis,或者pom文件报红
  3. python/numpy将矩阵保存为文本文件
  4. HP-UNIX操作系统root账号被锁定的两种解决方法
  5. 微软Office 365正式上架Mac App Store
  6. webrtc iOS端编译
  7. 复习-css列表和表格相关属性
  8. iOS 支付宝支付集成获取私钥
  9. 7-zip来解压大于4G以上打包文件
  10. SpringMVC-方法四种类型返回值总结,你用过几种?