当前位置: 首页 > news >正文

MySQL 锁机制 15 连问 · 面试速答版


一、脑图:锁全景(先记结构,再填细节)

锁层级
├─ 表锁
│   ├─ 意向锁  IS / IX
│   └─ 表锁   READ / WRITE
└─ 行锁├─ 记录锁  Record├─ 间隙锁  Gap└─ 临键锁  Next-Key

二、15 问 15 答(面试官一问一答节奏)

#高频问题15 秒答案
1行锁 vs 表锁行锁锁“行”,表锁锁“整表”;InnoDB 默认行锁,MyISAM 只有表锁。
2何时加表锁LOCK TABLES 显式加;② ALTER/TRUNCATE 隐式加;③ UPDATE 无索引退化为全表锁。
3怎么避免表锁① 用 InnoDB;② 条件列建索引;③ 避免全表扫描;④ 分批更新。
4乐观锁用“版本号”或“CAS”替代数据库锁;MySQL 实现:UPDATE t SET val=new, ver=ver+1 WHERE id=? AND ver=?;影响行数=1 即成功,0 则重试。
5意向锁表级“信号灯”,IS 表示要加行级共享锁,IX 表示要加行级排他锁;例:事务 A 先在 user 表加 IX,再在 id=10 行加 X。
6共享锁 S vs 排他锁 XS:读共享,多个事务可同时持有;X:写独占,任何其他锁互斥。
7两阶段加锁扩展阶段只加锁,收缩阶段只放锁;InnoDB RR 默认强 2PL(所有锁事务结束才放)。
8记录锁锁一行索引记录;例:SELECT * FROM t WHERE id=1 FOR UPDATE(唯一索引且命中)。
9间隙锁锁两个索引记录之间的“空隙”,防插入;例:SELECT * FROM t WHERE id=15 FOR UPDATE(id=15 不存在)。
10临键锁记录锁 + 间隙锁,左开右闭;RR 默认加;范围查询:id BETWEEN 10 AND 20 → (10,20]。
11RC 有 GAP/Next-Key?没有,RC 只有记录锁(除非显式 FOR UPDATE 且用到外键或唯一检查)。
12RR 如何防幻读MVCC(快照读)+ 临键锁(当前读)双管齐下。
13何时加临键锁RR 下:① 范围查询;② 非唯一索引等值查询;③ UPDATE/DELETE 无 LIMIT。
14唯一索引 vs 普通索引唯一索引等值命中→记录锁;普通索引等值→临键锁;唯一索引插入需额外 S 锁做唯一检查。
15死锁案例线上转账批量更新账户表,顺序相反 → 交叉死锁;排查:SHOW ENGINE INNODB STATUS;解决:统一按主键升序排序 + 批量单 SQL 更新;监控:Prometheus 死锁告警。

三、3 个口诀(背口诀,不背细节)

  1. 锁种类
    记录锁锁点,间隙锁锁缝,临键锁锁点缝”。

  2. RR 防幻读
    MVCC 看旧照,临键锁堵新插”。

  3. 避免死锁
    顺序加锁、批量合并、索引覆盖”。


四、面试官追问彩蛋

Q:UPDATE t SET c1=1 WHERE c2=2 无索引会怎样?
A:全表扫描 → 每条记录加 X 锁 + 所有间隙加 Gap 锁 → 等价锁全表;解决:给 c2 建联合索引或改为 id IN (SELECT id ...)


http://www.dtcms.com/a/302208.html

相关文章:

  • openeuler24.03部署k8s1.32.7集群(一主两从)
  • C primer plus (第六版)第九章 编程练习第6题
  • 基于YOLO11的电梯电瓶车检测系统:让电梯更安全
  • Redis反弹Shell
  • 《Java 程序设计》第 8 章 - Java 常用核心类详解
  • 安装研华板卡驱动
  • 重庆地区通信安全员考试题库及答案
  • tsc命令深入全面讲解
  • 零基础学习性能测试第六章:性能难点-Jmeter文件上传场景压测
  • 【智慧物联网平台】编译jar环境 Linux 系统编译IOT物联网——仙盟创梦IDE
  • React Immer 不可变数据结构的处理
  • Jmeter 性能测试监控之ServerAgent
  • Jmeter的元件使用介绍:(九)监听器详解
  • 10、Docker Compose 安装 MySQL
  • Redis数据量过大的隐患:查询会变慢吗?如何避免?
  • CacheGen:用于快速大语言模型推理服务的 KV 缓存压缩与流式传输
  • 【linux】高可用集群Keepalived
  • 如何给电脑换个ip地址?电脑换ip几种方法
  • 【计算机网络】OSI七层模型
  • AR眼镜:工业4.0时代高风险作业的安全守护者
  • 设计模式(二十二)行为型:策略模式详解
  • 【CSS】设置表格表头固定
  • 【查漏补缺】机器学习典型算法
  • ZeroNews 推出端到端 TLS 终止功能,强化数据传输安全
  • 【IP地址】大型监控项目IP地址如何规划?
  • 3,智能制造,MOM,MES - 精益制造(具体内容参考PPT文档)
  • 浅谈智能体经济(下篇)——Agent工厂与Agent市场
  • ppocr方向分类器记录
  • C++11之lambda及包装器
  • 【Bluedroid】bta_av_sink_media_callback(BTA_AV_SINK_MEDIA_CFG_EVT)流程源码分析