MYSQL的UPDATE时锁表机制

(笔记,只为获取流量券)

MySQL中,UPDATE 操作涉及到行级锁和表级锁的概念,具体取决于事务隔离级别和被更新的条件,

  1. 无索引的情况下:

    • 当表没有索引的情况下,UPDATE 操作通常会涉及到表级锁。
    • 这是因为在没有索引的情况下,MySQL需要锁定整个表以确保在更新期间没有其他并发操作对表产生影响。
  2. 有索引的情况下:

    • 如果使用索引来定位要更新的行,而且更新操作不涉及索引列以外的其他列,那么 UPDATE 操作可能只会涉及到行级锁。
    • 如果更新操作涉及到索引列以外的其他列,MySQL可能会选择锁定更多的内容,可能包括整个索引或索引的一部分,这可能导致更大的锁定范围。
    • 如果更新操作使用主键索引,效果通常会和直接使用主键进行更新类似。在这种情况下,行级锁通常是适用的。

有索引的情况下可以更倾向于行级锁,但具体情况还受到更新操作的具体内容和使用的索引类型的影响。在某些情况下,MySQL可能仍然会选择表级锁,特别是在涉及到非唯一索引或涉及到非索引列的情况下

正常举例:

相关推荐
知行学思1 天前
Python配置管理完全指南:从dotenv到pydantic_settings
数据库·python·fastapi·环境变量·配置管理·pydantic·dotenv
计算机网恋1 天前
Ubuntu22.04Server虚拟机网络配置
网络·数据库·postgresql
一只大黄猫1 天前
【数据库-入门2】基本概念
数据库
实泽有之,无泽虚之1 天前
MySQL主机因多次连接数据库错误而被阻塞
数据库·sql·mysql
Knight_AL1 天前
从自然语言到 SQL:为什么向量数据库是更好的选择
数据库·sql
Maybe I Simple1 天前
MySql 数据库分表 简单思路
数据库·php·webman
智航GIS1 天前
8.11 sys 模块
数据库·windows·microsoft
陈天伟教授1 天前
国产数据库快速入门《数据库技术原理及应用》(DM8)
数据库·数据挖掘
optimistic_chen1 天前
【Redis 系列】常用数据结构---SET类型
linux·数据结构·数据库·redis·set·数据类型·命令行
zbguolei1 天前
上传 Excel 文件进行数据库比对--增加导出功能
数据库·excel