MYSQL的UPDATE时锁表机制

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

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

  1. 无索引的情况下:

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

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

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

正常举例:

相关推荐
小毅&Nora3 分钟前
【后端】【Redis】② Redis事务管理全解:从“购物车结算“到“银行转账“,一文彻底掌握事务机制
数据库·redis·事务
u01092727143 分钟前
持续集成/持续部署(CI/CD) for Python
jvm·数据库·python
酉鬼女又兒2 小时前
SQL21 浙江大学用户题目回答情况
数据库·sql·mysql
KIN_DIN3 小时前
SQL 查询最新的一条记录
数据库·sql
m0_706653233 小时前
Python生成器(Generator)与Yield关键字:惰性求值之美
jvm·数据库·python
wangmengxxw3 小时前
SpringAI-mysql
java·数据库·人工智能·mysql·springai
Coder_Boy_3 小时前
基于SpringAI的在线考试系统-数据库设计核心业务方案
java·数据库·spring boot·ddd·tdd
机器视觉知识推荐、就业指导4 小时前
Qt 元对象系统:机制、组成与典型用法
数据库·qt
qq_423233904 小时前
实战:用Python开发一个简单的区块链
jvm·数据库·python
信创天地4 小时前
国产化数据库深度运维:性能调优与故障排查实战指南
运维·数据库·安全·elk·自动化·rabbitmq