MYSQL的UPDATE时锁表机制

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

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

  1. 无索引的情况下:

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

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

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

正常举例:

相关推荐
与数据交流的路上几秒前
一次 redis 幽灵内存的分析
数据库·redis·缓存
霂鳯6 分钟前
新手勇闯网络安全 | MySQL基础(四)
mysql·web安全·adb
qq_4017004114 分钟前
Qt Modbus 工程化封装:超时、重试、取消与资源释放,别让异步请求变成隐患
数据库·qt
ESDWAN17 分钟前
SD-WAN 是什么?工作原理、适用场景与选型要点
开发语言·网络·数据库·架构·php
m0_6399069419 分钟前
MySQL 慢查询优化|explain执行计划详解
数据库·mysql
正儿八经的少年22 分钟前
MyBatis 一对一、一对多 SQL
数据库·sql·mybatis
Elastic 中国社区官方博客28 分钟前
Elastic 在《Forrester Wave™:2026 年第四季度智能运维平台》报告中被评为强劲表现者
大数据·运维·数据库·elasticsearch·搜索引擎·全文检索
Apache IoTDB30 分钟前
从 IoTDB 到 CED-DB:哈尔滨工业大学探索云边端协同时序数据库
数据库·时序数据库·iotdb
闲云野鹤在人间36 分钟前
头秃修炼手册:StorageClass+StatefulSet+ETCD 全套渡劫笔记
linux·数据库·笔记·云原生·kubernetes·etcd
ChaITSimpleLove41 分钟前
Layout.WatchDog.NET 1.5.0-beta.2 发布:.NET 实时应用监控再升级,新增资源监控看板与 SQLite 支持
mysql·mongodb·pgsql·mssql·litedb\sqlite·.net轻量级日志记录器·node资源监控看板