简单回顾一下:

(1)MySQL数据存储包含内存与磁盘两个部分;
(2)内存缓冲池(buffer pool)以页为单位,缓存最热的数据页(data page)与索引页(index page);
(3)InnoDB以变种LRU算法管理缓冲池,并能够解决“预读失效”与“缓冲池污染”的问题;
画外音:细节详见《缓冲池(buffer pool),彻底懂了!》
毫无疑问,对于读请求,缓冲池能够减少磁盘IO,提升性能。问题来了,那写请求呢?
情况一
假如要修改页号为4的索引页,而这个页正好在缓冲池内。

如上图序号1-2:
(1)直接修改缓冲池中的页,一次内存操作;
(2)写入redo log,一次磁盘顺序写操作;
这样的效率是最高的。
画外音:像写日志这种顺序写,每秒几万次没问题。
是否会出现一致性问题呢?
并不会。
(1)读取,会命中缓冲池的页;
(2)缓冲池LRU数据淘
继续阅读与本文标签相同的文章
上一篇 :
数据库软件架构,到底要设计些什么?
-
阿里云DLA新功能来袭 查询MongoDB嵌套字段更方便
2026-05-21栏目: 教程
-
只要三步!阿里云DLA帮你处理海量JSON数据
2026-05-21栏目: 教程
-
Apache NiFi之MySQL数据同步
2026-05-21栏目: 教程
-
关于波分复用技术的CWDM与DWDM光模块介绍
2026-05-21栏目: 教程
-
SpringBoot 返回参数为null,不返回的处理
2026-05-21栏目: 教程
