无标签
- 分类
- 数据库
- 难度
- 未设置
- 来源数
- 1
- 更新时间
- 2026/03/29 00:57
答案
innodb中解决幻读主要有两种方法:mvcc 和 next-key lock + 针对快照读,即普通的select,我们可以使用mvcc很好的解决幻读。因为你在开启事务时创建read view,即使这中间有其他事物插入了数据,这条数据对你也是不可见的。 + 针对当前读,即select...for update,我们可以使用next-key lock来解决。如果有其他事物在next-key lock范围内插入一条记录,则插入操作会被阻塞。
相关题目(5)
什么是热点 key,如何处理?共源 1
分布式系统Redis
watch dog 机制是什么?共源 1
分布式系统并发锁Redis
Redis 如何实现分布式锁?共源 1
分布式系统锁Redis
分布式系统并发Redis
元信息
审核状态: active
关联来源: 1
来源面经题(0)
这道题目前没有手动沉淀的面经题来源。
来源(1)
Java八股(数据库).md
knowledge_noteQuestion 42: InnoDB中如何解决幻读?
Source answer: innodb中解决幻读主要有两种方法:mvcc 和 next-key lock + 针对快照读,即普通的select,我们可以使用mvcc很好的解决幻读。因为你在开启事务时创建read view,即使这中间有其他事物插入了数据,这条数据对你也是不可见的。 + 针对当前读,即select...for update,我们可以使用next-key lock来解决。如果有其他事物在next-key lock范围内插入一条记录,则插入操作会被阻塞。
Reviewed answer: InnoDB主要通过MVCC和next-key lock解决幻读。快照读场景下,普通select依赖MVCC和read view;当前读场景下,如select ... for update,依赖next-key lock阻止范围内插入。