MYSQL的UPDATE时锁表机制

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

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

  1. 无索引的情况下:

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

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

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

正常举例:

相关推荐
我科绝伦(Huanhuan Zhou)1 分钟前
oracle RAC共享存储换盘操作指南
数据库·oracle
wangbing11259 分钟前
重建oracle服务
数据库·oracle
唐小码9 分钟前
MYSQL表中没有主键,怎么找到重复的数据
数据库
fengkai454515 分钟前
十一、MySQL 第 4-7 章
运维·数据库·mysql
我科绝伦(Huanhuan Zhou)22 分钟前
PostgreSQL 数据库小版本与大版本升级详解
数据库·postgresql
ao-weilai38 分钟前
MySQL数据库:索引
数据库·mysql
shaibdoio42 分钟前
瞬维AI落地经验:AI Agent工具调用准确率怎么提
数据库·人工智能·oracle
NPE~1 小时前
CMDB科普:配置管理数据库——运维相关
运维·数据库·科普·cmdb·配置管理数据库
Highcharts.js1 小时前
动态数据可视化架构:Highcharts + PHP + MySQL 从数据库到数据渲染
数据库·mysql·php·开发文档·实时数据·highcharts·图表开发
余槐i1 小时前
WAL 下写并发仍是 1:SQLite 单写者模型实测与绕开方案
数据库·python·性能优化·sqlite·wal