找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

5776

积分

0

好友

742

主题
发表于 7 天前 | 查看: 2| 回复: 0

每日一题 MySQL InnoDB 快照读无锁查询

MySQL InnoDB 引擎里,快照读为什么能不加锁就完成查询?它依赖下面哪一类日志?

A、binlog
B、undo log
C、slow log
D、redo log

这里的关键是 MVCC:快照读读取的是事务开始时的数据版本,而不是当前最新数据,因此不会像当前读那样加锁。那么,这个“历史版本”是由谁维护的?

答案选 B、undo log
undo log 会保存数据修改前的旧版本,快照读通过 MVCC 机制读取这些历史版本,从而实现无锁一致性读;而 binlog 负责主从复制与数据恢复,slow log 记录慢查询,redo log 则用于崩溃恢复。




上一篇:STM32单片机C语言工厂模式实战:传感器驱动的解耦与注册机制
下一篇:n8n 原型链污染漏洞(CVE-2026-33696)如何从 Schema Name 一路推进到 RCE
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-8-26 01:44 , Processed in 1.049418 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表