2019独角兽企业重金招聘Python工程师标准>>>

简单总结一下行锁和表锁。

  • 行锁 每次操作锁住一行数据。开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。
  • 表锁 每次操作锁住整张表。开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。

使用行锁或表锁都是使用的悲观锁:SELECT ...FOR UPDATE。 当查询有明确的主键时使用的是行锁;查询无明确主键时使用表锁。 注意要使用InnoDB引擎。 银行、库存中会用到,这里以商品库存为例。product表中,id为主键,商品名称为name。

      1. 明确指定主键,并且有结果集,Row_Level Lock, 行锁。如:SELECT * FROM product WHERE id='5' FOR UPDATE;2. 明确指定主键,并且无结果集,无Lock,不会上锁。如:SELECT * FROM product WHERE id='-100' FOR UPDATE;3. 无主键 Table-Level Locl,会锁表。如:SELECT * FROM product WHERE name='xiaomi' FOR UPDATE;4. 主键不明确,Table-Level Lock,会锁表。如:SELECT * FROM product WHERE id <> '5' FOR UPDATE;如:SELECT * FROM product WHERE id LIKE '5' FOR UPDATE;

转载于:https://my.oschina.net/u/3529861/blog/1860643

MySQL的行锁和表锁相关推荐

  1. MySQL/InnoDB中,乐观锁、悲观锁、共享锁、排它锁、行锁、表锁、死锁概念的理解

    MySQL/InnoDB的加锁,一直是一个面试中常问的话题.例如,数据库如果有高并发请求,如何保证数据完整性?产生死锁问题如何排查并解决?我在工作过程中,也会经常用到,乐观锁,排它锁,等.于是今天就对 ...

  2. MySQL中的锁(表锁、行锁)

    锁是计算机协调多个进程或纯线程并发访问某一资源的机制.在数据库中,除传统的计算资源(CPU.RAM.I/O)的争用以外,数据也是一种供许多用户共享的资源.如何保证数据并发访问的一致性.有效性是所在有数 ...

  3. mysql某个表被行锁了_MySQL中的锁(表锁、行锁)

    锁是计算机协调多个进程或纯线程并发访问某一资源的机制.在数据库中,除传统的计算资源(CPU.RAM.I/O)的争用以外,数据也是一种供许多用户共享的资源.如何保证数据并发访问的一致性.有效性是所在有数 ...

  4. mysql和oracle的锁_关于数据库行锁与表锁的认识

    MySQL MySQL(InnoDB存储引擎)默认是自动提交事务的,所以这个测试,需要先将MySQL的autocommit设置为0,关闭自动提交,需要自己手动提交事务 -- 关闭自动提交 set au ...

  5. MySQL乐观锁、共享锁、排他锁、行锁、表锁区别和使用方法

    数据库锁分类 锁模式分类 乐观锁.悲观锁 范围锁 行锁.表锁 算法锁 临间锁.间隙锁.记录锁 属性锁 共享锁(读锁).排他锁(写锁) 状态锁 意向共享锁.意向排他锁 一.乐观锁和悲观锁 1.乐观锁介绍 ...

  6. MySQL:行锁、表锁、乐观锁、悲观锁、读锁、写锁

    1.锁的分类 1.1从对数据操作的类型来分 读锁(共享锁):针对同一份数据,多个读操作可以同时进行而不会互相影响. 结论1: --如果某一个会话 对A表加了read锁,则 该会话 可以对A表进行读操作 ...

  7. mysql 并发 锁表_MySQL中的锁(表锁、行锁) 并发控制锁

    https://github.com/MrLining/mysql/wiki/MySQL%E4%B8%AD%E7%9A%84%E9%94%81%EF%BC%88%E8%A1%A8%E9%94%81%E ...

  8. mysql innodb 全表锁,Mysql InnoDB行锁及表锁分享

    一. 背景知识 二. 步入正题:表锁和行锁 1.1. 表锁 vs 行锁 在 MySQL 中锁的种类有很多,但是最基本的还是表锁和行锁:表锁指的是对一整张表加锁,一般是 DDL 处理时使用,也可以自己在 ...

  9. 阿里P8架构师谈:MySQL行锁、表锁、悲观锁、乐观锁的特点与应用

    我们在操作数据库的时候,可能会由于并发问题而引起的数据的不一致性(数据冲突).如何保证数据并发访问的一致性.有效性,是所有数据库必须解决的一个问题,锁的冲突也是影响数据库并发访问性能的一个重要因素,从 ...

  10. Mysql之数据库锁(表锁和行锁)详解

    1. 什么是锁? 锁是计算机协调多个进程或线程并发访问某一资源的机制. 在数据库中,除传统的计算资源(如CPU.RAM.I/O等)的争用以外,数据也是一种共享资源,如何保证数据并发访问的一致性.有效性 ...

最新文章

  1. linux phpstudy
  2. rest framework 节流
  3. asp.net core 系列 19 EFCore介绍
  4. 概率论-随机事件及其概率
  5. 大数据预测分析是否对企业有影响
  6. 第一章 项目管理引论
  7. java基础 泛型类的定义
  8. 【目标定位】基于matlab UWB卡尔曼滤波追踪无线时钟同步误差【含Matlab源码 1626期】
  9. 计算机管理设置透明,怎么让Win10任务栏全透明_win10系统让任务栏完全透明的设置步骤-win7之家...
  10. 最新windows7旗舰版密钥
  11. 2021年「博客之星」参赛博主:南浔Pyer
  12. WC!咱平时使用的PDF,原来这么不安全?
  13. 【UV打印机】电气之光电传感器
  14. 用硬实力,好作品,砸开阿里的前端开发金饭碗
  15. 7.Unity中c#代码学习(物理系统刚体+碰撞检测(爆炸效果实现))
  16. micro-app-vue2 vue3 超详细快速入门指南 学习记录
  17. C语言:用头插入法建立链表
  18. 论文阅读——Segmenting Medical MRI via Recurrent Decoding Cell
  19. 计算机安装两个键盘会怎样,一台电脑怎么同时使用两个键盘?
  20. HTB-DevOops

热门文章

  1. 轻松搞定对容器实例日志设置定期清理和回卷
  2. docker 服务器engin开放2376端口给pycharm连接
  3. 教你如何用手机查看哪些人在蹭你家的WIFI,然后将他们屏蔽!
  4. 使用java进行文件编码转换
  5. 如何在网页中动态为模版页的Body添加属性
  6. MySQL 的日语认证有了,中文呢?
  7. 转载的SSO文章,很基础
  8. 大牛推荐的30本经典编程书籍,从Python到前端全系列。
  9. 零基础如何学好数据分析?
  10. php css去除h1样式,HTML中怎么设置h1的字体样式你知道吗?