一分钟明白各种SQL语句加的什么锁——《深究Mysql锁》
一、正常查询
在4个事务隔离级别中,除了在串行化(Serializable)时会加共享锁,其他的都不加锁,即快照读。
二、加了锁的查询
加锁select主要是指:
select ... for update
select ... in share mode
1.当使用唯一索引来搜索唯一行的语句时,使用记录锁(record lock)。如:
select * from t where id = 10 for update; # id是唯一索引列
2.其他情况,包括id列没有索引或者是非唯一索引又或者是搜索条件里有多个查询条件(使每个列都有唯一索引),则使用间隙锁与临键锁。
临键锁是间隙锁和记录锁的组合。
三、update和delete
1. 当使用唯一索引列确定的唯一数据行上进行的update/delete,也使用记录锁:
update t set number=10 where id=1;
2. 其他情况,包括id列没有索引或者是非唯一索引又或者是搜索条件里有多个查询条件(使每个列都有唯一索引),则加排他临键锁(exclusive next-key lock)。
注意:如果update的是聚集索引记录,则对应的二级索引记录也会被隐式加锁,这是由InnoDB索引的实现机制决定的:二级过引的叶子上存的是聚集索引的主键值,当检索二级索引时,会二次扫描聚集索引。
四、insert
insert会用排它锁封锁被插入的索引记录,然后在插入区间加插入意向锁(insert intention lock)。
一分钟明白各种SQL语句加的什么锁——《深究Mysql锁》相关推荐
- mysql sql语句 参数化_C#参数化执行SQL语句,防止破绽攻击本文以MySql为例【20151108非查询操作】_mysql...
C#参数化执行SQL语句,防止漏洞攻击本文以mysql为例[20151108非查询操作] 为什么要参数化执行SQL语句呢? 一个作用就是可以防止用户注入漏洞. 简单举个列子吧. 比如账号密码登入,如果 ...
- 五分钟了解Mysql的行级锁——《深究Mysql锁》
延伸阅读: 三分钟了解Mysql的表级锁 一分钟深入Mysql的意向锁 mysql锁相关讲解及其应用--<深究mysql锁>了解锁前,一定要先看这篇,了解什么是MVCC,如果我们学习锁,没 ...
- 三分钟了解Mysql的表级锁——《深究Mysql锁》
延伸阅读: 五分钟了解Mysql的行级锁 一分钟深入Mysql的意向锁 mysql锁相关讲解及其应用--<深究mysql锁>了解锁前,一定要先看这篇,了解什么是MVCC,如果我们学习锁,没 ...
- mysql慢查询 表级锁_三分钟了解Mysql的表级锁——《深究Mysql锁》
延伸阅读: 五分钟了解Mysql的行级锁 一分钟深入Mysql的意向锁 mysql锁相关讲解及其应用--<深究mysql锁>了解锁前,一定要先看这篇,了解什么是MVCC,如果我们学习锁,没 ...
- 一分钟深入Mysql的意向锁——《深究Mysql锁》
延伸阅读: 三分钟了解Mysql的表级锁 五分钟了解Mysql的行级锁 mysql锁相关讲解及其应用--<深究mysql锁>了解锁前,一定要先看这篇,了解什么是MVCC,如果我们学习锁,没 ...
- oracle sql语句加减,实现四则运算的一条sql语句
实现四则运算的一条sql语句 1.建立一个测试表 create table mar_test( id number, text varchar2(200)) insert into mar_Test ...
- 美团:这个 SQL 语句加了哪些锁?
点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | ...
- mysql添加索引的方法(Navicat可视化加索引和sql语句加索引)
使用索引的场景: 阿里云日志里出现了慢sql 然后发现publish_works_id字段会经常用于一些关联,所以决定把这个字段加上索引,优化sql 可视化navicat操作字段加索引,选择字段所在的 ...
- 正确加载MySQL驱动的语句_使用数据库客户端工具Oracle SQL Developer加载第三方驱动连接mysql的方法...
用Oracle SQL Developer时遇到no ocijdbc11 in java.library.path怎么办 不是配置环境变量,而是去选项里面,添加数据库的驱动 jdbc的驱动没有在cla ...
最新文章
- LeetCode实战:合并两个有序链表
- 【old】mapX距离工具源码,delphi7+mapx5.0
- sed 正则表达式【MAC地址】GLPI转换华为交换机MAC格式
- 2020年 HackerEarth 调查:Go 语言成为最受欢迎的语言 开发者最关心职业发展路径...
- webpack指南-webpack入门-webpack的安装
- linux怎么还原bak文件,Linux restore命令:还原dump操作备份下的文件、目录或分区...
- Spring Cloud Consul 基础使用介绍
- 【Python】获取星期字符串
- mysql拒绝访问root用户_Linux部署MySql数据库(超简单)
- CentOS 6.6安装配置LAMP服务器(Apache+PHP5+MySQL)
- leetcode先刷_Maximum Subarray
- win10 android4.4 驱动,ST-LINK/V2驱动win10版
- 三点估算法_三点估算/PERT历时估算
- NB-IoT:它是如何工作的?第2部分
- IP、网关、端口、网段、子网掩码概念区别
- 网件路由器使用计算机mac,网件路由器怎么ip与mac绑定(2)
- linux连接oracle的日志,linux shell脚本连接oracle查询数据插入文件和日志文件中
- 软件测试面试题之用例设计题
- Android 蓝牙学习
- 第5模块闯关CSS练习题