【mysql】有索引和没有索引字段更新时锁的不同
结论
对于有索引的的字段作为更新条件,如果更加语句用上了索引,那么只会在对于的更新字段的索引和对于记录的主键索引上加上x锁
如果更新字段没有索引,由于需要全部扫描,那么就会给所有主键索引加上x,导致其他事务的更新操作被阻塞
准备
有表 t_person_info,create_time没有加索引,有记录: 4429
执行无索引字段更新
执行下面的事务,不提交
begin;
update t_person_info set type='2' where create_time>SYSDATE()-2 and create_time<=SYSDATE()-1;rollback;
查看锁信息(mysql8版本)


执行有索引记录更新
给create_time创建索引。
ALTER TABLE `datacatlog`.`t_person_info`
ADD INDEX `idx_create_time`(`create_time`) USING BTREE;
sql:
select * from t_person_info where create_time<STR_TO_DATE('05/10/2024 14:30:00', '%d/%m/%Y %H:%i:%s')and create_time>STR_TO_DATE('05/10/2022 14:30:00', '%d/%m/%Y %H:%i:%s')

执行计划:
EXPLAIN select * from t_person_info where create_time<STR_TO_DATE('05/10/2024 14:30:00', '%d/%m/%Y %H:%i:%s')and create_time>STR_TO_DATE('05/10/2022 14:30:00', '%d/%m/%Y %H:%i:%s')

然后再更新:
begin;
update t_person_info set type='2' where create_time>SYSDATE()-2 and create_time<=SYSDATE()-1;rollback;
查看锁信息(mysql8版本)
可以看到上面查询的符合条件的记录都被加上x锁了。
然后执行其他更新操作:


执行无主键和无唯一键的表更新
t_test表有test1 test2 test3三个字段,但是没有任何索引,也没有主键

开始一个执行更新事务
BEGIN;update t_test set test1='r2rr' where test2='233';ROLLBACK

相关文章:
【mysql】有索引和没有索引字段更新时锁的不同
结论 对于有索引的的字段作为更新条件,如果更加语句用上了索引,那么只会在对于的更新字段的索引和对于记录的主键索引上加上x锁 如果更新字段没有索引,由于需要全部扫描,那么就会给所有主键索引加上x,导致其他事务的更…...
机器学习的三个基本要素
机器学习的基本要素包括模型、学习准则(策略)和优化算法三个部分。机器学习方法之间的不同,主要来自其模型、学习准则(策略)、优化算法的不同。 模型 机器学习首要考虑的问题是学习什么样的模型(Model&am…...
神经机器翻译:联合学习对齐和翻译
大家读完觉得有帮助记得关注和点赞!!! 摘要 神经机器翻译是最近提出的机器翻译方法。与传统的统计机器翻译不同,神经机器翻译旨在构建一个可以联合调整以最大化翻译性能的单一神经网络。最近为神经机器翻译提出的模型通常属于编码…...
[Web 安全] PHP 反序列化漏洞 —— PHP 魔术方法
关注这个专栏的其他相关笔记:[Web 安全] 反序列化漏洞 - 学习笔记-CSDN博客 PHP 魔术方法 - 简介 - PHP 魔术方法 - 简单教程,简单编程PHP 中,以两个下划线 ( __ ) 开头方法称之为 「 魔术方法 」 这些 「 魔术方法 」 在 [PHP](/l/yufei/php…...
聆听PostgreSQL数据库的使用
参考:(1)零基础入门PostgreSQL教程 (2)菜鸟教程 文章目录 一、PostgreSQL是什么?二、基本使用1.下载2.操作(1)数据库(2)表 一、PostgreSQL是什么?…...
2025嵌入式软件开发工程师--音频方向
一、选择题(每题3分,共30分) 1.以下哪个不是C语言中的关键字?( ) A. int B. Float C. Define D. Return 2.以下代码的输出是: ( ) inta 5, b 10; printf("%d“, a b); A. 15 B.16 …...
C#释放内存空间的方法
目录 前言释放 C# 对象内存的六种方法1、手动释放内存空间2、使用 Using 语句3、使用 垃圾回收器4、GC.Collect() 方法5、GC.WaitForPendingFinalizers() 方法6、WeakReference 类 注意 前言 当不再需要对象时释放内存空间对于防止内存泄漏和提高应用程序性能至关重要。C# 提供…...
《鸢尾花数学大系:从加减乘除到机器学习》开源资源
《鸢尾花数学大系:从加减乘除到机器学习》开源资源 Gitee:https://gitee.com/higkoo/ bilibili:https://space.bilibili.com/513194466 GitHub:https://github.com/Visualize-ML...
如何将一台服务器的pip环境迁移到另一个机器?
在没有网络的情况下,将一台服务器的 pip 环境迁移到另一台机器,可按以下步骤进行操作: 步骤一:在源服务器上导出已安装的包列表 在有网络且已安装所需 Python 包的源服务器上,使用以下命令导出已安装的 Python 包列表: pip freeze > requirements.txt该命令会将当前…...
Java 入门 (超级详细)
一、什么是Java Java是一种高级编程语言,由Sun Microsystems公司于1995年推出。Java具有跨平台性、面向对象、健壮性、安全性、可移植性等特点,被广泛应用于企业级应用开发、移动应用开发、大数据处理、云计算等领域。Java程序可以在不同的操作系统上运…...
计算机基础面试(数据结构)
1. 数组和链表的区别是什么?各自的优缺点是什么? 专业解答: 数组内存连续,支持随机访问,但插入删除效率低;链表内存离散,插入删除高效,但访问需遍历。 初中生版: 数组像…...
DBGPT安装部署使用
简介 DB-GPT是一个开源的AI原生数据应用开发框架(AI Native Data App Development framework with AWEL(Agentic Workflow Expression Language) and Agents)。 目的是构建大模型领域的基础设施,通过开发多模型管理(SMMF)、Text2SQL效果优化、RAG框架以及优化、Mul…...
【蓝桥杯单片机】第十二届省赛
一、真题 二、模块构建 1.编写初始化函数(init.c) void Cls_Peripheral(void); 关闭led led对应的锁存器由Y4C控制关闭蜂鸣器和继电器 由Y5C控制 2.编写LED函数(led.c) void Led_Disp(unsigned char ucLed); 将ucLed取反的值赋给P0 开启锁存器…...
开源嵌入式实时操作系统NuttX介绍
一、NuttX RTOS的发展历程:从个人项目到Apache顶级开源项目 NuttX 是一款轻量级、可扩展的实时操作系统(RTOS),其发展历程堪称开源社区的经典案例。 起源与初创(2003-2007) NuttX 由 Gregory Nutt 于2003…...
阿里云服务器部署项目笔记 实操 centos7.9
阿里云服务器部署项目笔记 实操 centos7.9 springboot vue elementUImysqlredis 相关的redis,mysql,nginx镜像,jdk 通过网盘分享的文件:docker镜像 链接: https://pan.baidu.com/s/15VwcWBP4Jy07xADuvylgQw?pwdm2g9 提取码: m2g9 配置环境 连接云服务器 安装…...
Java-实现PDF合同模板填写内容并导出PDF文件
可用于公司用户合同导出pdf文件 效果图 一、导入所需要jar包 <!--生成PDF--><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.11</version></dependency><dependency&…...
Docker安装Grafana数据可视化平台
介绍 Grafana是一个开源的监控和数据可视化平台,主要用于展示和分析时间序列数据。提供功能强大且灵活的数据可视化和监控工具,适用于多种场景,它广泛应用于DevOps、IT运维、物联网(IoT)和业务分析等领域。 Grafana的主…...
MyBatis-Plus 自动填充功能
MyBatis-Plus(MP) 提供了一个非常强大的功能——自动填充功能。该功能可以在执行插入或更新操作时,自动为某些字段赋值,免去手动设置这些字段的麻烦。常见的应用场景包括 创建时间 和 更新时间 字段的自动填充,帮助开发…...
解决redis lettuce连接池经常出现连接拒绝(Connection refused)问题
一.软件环境 windows10、11系统、springboot2.x、redis 6 7 linux(centos)系统没有出现这问题,如果你是linux系统碰到的,本文也有一定大参考价值。 根本思路就是:tcp/ip连接的保活(keepalive)。 二.问题描述 在spr…...
武汉大学生命科学学院与谱度众合(武汉)生命科技有限公司举行校企联培座谈会
2025年2月21日下午,武汉大学生命科学学院与谱度众合(武汉)生命科技有限公司(以下简称“谱度众合”)在学院学术厅举行校企联培专业学位研究生合作交流会。武汉大学生命科学学院副院长刘星教授、生命科学学院周宇教授、产…...
Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP
编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能
1. 开发环境准备 安装DevEco Studio 3.1: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK 项目配置: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...
Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...
零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程
STM32F1 本教程使用零知标准板(STM32F103RBT6)通过I2C驱动ICM20948九轴传感器,实现姿态解算,并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化,适合嵌入式及物联网开发者。在基础驱动上新增…...
热烈祝贺埃文科技正式加入可信数据空间发展联盟
2025年4月29日,在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上,可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞,强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...
Python训练营-Day26-函数专题1:函数定义与参数
题目1:计算圆的面积 任务: 编写一个名为 calculate_circle_area 的函数,该函数接收圆的半径 radius 作为参数,并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求:函数接收一个位置参数 radi…...
Centos 7 服务器部署多网站
一、准备工作 安装 Apache bash sudo yum install httpd -y sudo systemctl start httpd sudo systemctl enable httpd创建网站目录 假设部署 2 个网站,目录结构如下: bash sudo mkdir -p /var/www/site1/html sudo mkdir -p /var/www/site2/html添加测试…...
无头浏览器技术:Python爬虫如何精准模拟搜索点击
1. 无头浏览器技术概述 1.1 什么是无头浏览器? 无头浏览器是一种没有图形用户界面(GUI)的浏览器,它通过程序控制浏览器内核(如Chromium、Firefox)执行页面加载、JavaScript渲染、表单提交等操作。由于不渲…...
Razor编程中@Helper的用法大全
文章目录 第一章:Helper基础概念1.1 Helper的定义与作用1.2 Helper的基本语法结构1.3 Helper与HtmlHelper的区别 第二章:基础Helper用法2.1 无参数Helper2.2 带简单参数的Helper2.3 带默认值的参数2.4 使用模型作为参数 第三章:高级Helper用法…...
