select for update 含义

简介: select for update 含义

select for update 含义

select查询语句是不会加锁的,但是select for update除了有查询的作用外,还会加锁呢,而且它是悲观锁哦。至于加了是行锁还是表锁,这就要看是不是用了索引/主键啦。

没用索引/主键的话就是表锁,否则就是是行锁。

select for update 加锁验证

表结构:

//id 为主键,name为唯一索引

CREATE TABLE account (

id int(11) NOT NULL AUTO_INCREMENT,

name varchar(255) DEFAULT NULL,

balance int(11) DEFAULT NULL,

PRIMARY KEY (id),

KEY idx_name (name) USING BTREE

) ENGINE=InnoDB AUTO_INCREMENT=1570068 DEFAULT CHARSET=utf8

id为主键,select for update 1270070这条记录时,再开一个事务对该记录更新,发现更新阻塞啦,其实是加锁了。如下图:
image.png
再开一个事务对另外一条记录1270071更新,发现更新成功,因此,如果查询条件用了索引/主键,会加行锁~
image.png
因此,没用索引/主键的话,select for update加的就是表锁

相关文章
|
前端开发 Java C#
java/C#语言开发的医疗信息系统11套源码
java/C#语言开发的医疗信息系统11套源码
525 2
|
4月前
|
人工智能 数据挖掘 数据安全/隐私保护
AI拆解小红书和公众号笔记,4个步骤让你看懂爆款底层密码(附AI工作流实操步骤和AI提示词)
用AI深度拆解155篇万赞笔记,提炼出爆款共性:选题抓痛点、开头造冲突、结构强逻辑、表达重共鸣。本文分享实操四步法、40+可复用模板及原创提示词,助你告别凭感觉创作,科学提升内容效率
1156 4
|
9月前
|
存储 人工智能 智能设计
建筑机电协同必备:Inventor 2026 新版本亮点 附安装包
Inventor 2026 是专业级三维机械设计平台,强化智能建模、性能优化与工程协同。支持AI驱动参数化设计、大型装配体流畅操作、智能出图及BOM管理,深度融合制造流程,助力设计到生产的高效转化。
1202 8
Linux 中经常见到的 gz 文件
Linux 中经常见到的 gz 文件
|
Java 数据库连接 mybatis
|
监控 Java 应用服务中间件
tomcat目录结构及配置文件详解
上篇文章讲解了怎么去安装tomcat,本篇文章讲解一下tomcat的目录及配置文件
|
弹性计算 运维 Cloud Native
偕行十年,阿里云助力众安保险用科技温暖每一张保单
应云而生的众安保险,其IT架构都搭建在阿里云上,云服务器ECS关键应用上的数据需要保护,需要简单易用、稳定性高的方案,助力保险业务的快速开发和上线。在经过全面充分地沟通评估后,众安保险采用了阿里云原生的数据备份方案加强数据安全。
668 3
|
关系型数据库 MySQL Linux
|
机器学习/深度学习 决策智能
**批量归一化(BN)**是2015年提出的深度学习优化技术,旨在解决**内部协变量偏移**和**梯度问题**。
【6月更文挑战第28天】**批量归一化(BN)**是2015年提出的深度学习优化技术,旨在解决**内部协变量偏移**和**梯度问题**。BN通过在每个小批量上执行**标准化**,然后应用学习到的γ和β参数,确保层间输入稳定性,加速训练,减少对超参数的敏感性,并作为隐含的正则化手段对抗过拟合。这提升了模型训练速度和性能,简化了初始化。
531 0
|
Kubernetes 小程序 Docker
ChaosBlade安装问题之通过kubectl安装chaosblade-operator如何解决
ChaosBlade 是一个开源的混沌工程实验工具,旨在通过模拟各种常见的硬件、软件、网络、应用等故障,帮助开发者在测试环境中验证系统的容错和自动恢复能力。以下是关于ChaosBlade的一些常见问题合集:

热门文章

最新文章