MySQL的行锁和表锁
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的行锁和表锁相关推荐
- MySQL/InnoDB中,乐观锁、悲观锁、共享锁、排它锁、行锁、表锁、死锁概念的理解
MySQL/InnoDB的加锁,一直是一个面试中常问的话题.例如,数据库如果有高并发请求,如何保证数据完整性?产生死锁问题如何排查并解决?我在工作过程中,也会经常用到,乐观锁,排它锁,等.于是今天就对 ...
- MySQL中的锁(表锁、行锁)
锁是计算机协调多个进程或纯线程并发访问某一资源的机制.在数据库中,除传统的计算资源(CPU.RAM.I/O)的争用以外,数据也是一种供许多用户共享的资源.如何保证数据并发访问的一致性.有效性是所在有数 ...
- mysql某个表被行锁了_MySQL中的锁(表锁、行锁)
锁是计算机协调多个进程或纯线程并发访问某一资源的机制.在数据库中,除传统的计算资源(CPU.RAM.I/O)的争用以外,数据也是一种供许多用户共享的资源.如何保证数据并发访问的一致性.有效性是所在有数 ...
- mysql和oracle的锁_关于数据库行锁与表锁的认识
MySQL MySQL(InnoDB存储引擎)默认是自动提交事务的,所以这个测试,需要先将MySQL的autocommit设置为0,关闭自动提交,需要自己手动提交事务 -- 关闭自动提交 set au ...
- MySQL乐观锁、共享锁、排他锁、行锁、表锁区别和使用方法
数据库锁分类 锁模式分类 乐观锁.悲观锁 范围锁 行锁.表锁 算法锁 临间锁.间隙锁.记录锁 属性锁 共享锁(读锁).排他锁(写锁) 状态锁 意向共享锁.意向排他锁 一.乐观锁和悲观锁 1.乐观锁介绍 ...
- MySQL:行锁、表锁、乐观锁、悲观锁、读锁、写锁
1.锁的分类 1.1从对数据操作的类型来分 读锁(共享锁):针对同一份数据,多个读操作可以同时进行而不会互相影响. 结论1: --如果某一个会话 对A表加了read锁,则 该会话 可以对A表进行读操作 ...
- 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 ...
- mysql innodb 全表锁,Mysql InnoDB行锁及表锁分享
一. 背景知识 二. 步入正题:表锁和行锁 1.1. 表锁 vs 行锁 在 MySQL 中锁的种类有很多,但是最基本的还是表锁和行锁:表锁指的是对一整张表加锁,一般是 DDL 处理时使用,也可以自己在 ...
- 阿里P8架构师谈:MySQL行锁、表锁、悲观锁、乐观锁的特点与应用
我们在操作数据库的时候,可能会由于并发问题而引起的数据的不一致性(数据冲突).如何保证数据并发访问的一致性.有效性,是所有数据库必须解决的一个问题,锁的冲突也是影响数据库并发访问性能的一个重要因素,从 ...
- Mysql之数据库锁(表锁和行锁)详解
1. 什么是锁? 锁是计算机协调多个进程或线程并发访问某一资源的机制. 在数据库中,除传统的计算资源(如CPU.RAM.I/O等)的争用以外,数据也是一种共享资源,如何保证数据并发访问的一致性.有效性 ...
最新文章
- linux phpstudy
- rest framework 节流
- asp.net core 系列 19 EFCore介绍
- 概率论-随机事件及其概率
- 大数据预测分析是否对企业有影响
- 第一章 项目管理引论
- java基础 泛型类的定义
- 【目标定位】基于matlab UWB卡尔曼滤波追踪无线时钟同步误差【含Matlab源码 1626期】
- 计算机管理设置透明,怎么让Win10任务栏全透明_win10系统让任务栏完全透明的设置步骤-win7之家...
- 最新windows7旗舰版密钥
- 2021年「博客之星」参赛博主:南浔Pyer
- WC!咱平时使用的PDF,原来这么不安全?
- 【UV打印机】电气之光电传感器
- 用硬实力,好作品,砸开阿里的前端开发金饭碗
- 7.Unity中c#代码学习(物理系统刚体+碰撞检测(爆炸效果实现))
- micro-app-vue2 vue3 超详细快速入门指南 学习记录
- C语言:用头插入法建立链表
- 论文阅读——Segmenting Medical MRI via Recurrent Decoding Cell
- 计算机安装两个键盘会怎样,一台电脑怎么同时使用两个键盘?
- HTB-DevOops