15.11.1 InnoDB 磁盘 I/O
InnoDB
尽可能使用异步磁盘 I/O,通过创建多个线程来处理 I/O 操作,同时允许其他数据库操作在 I/O 仍在进行中时继续进行。在 Linux 和 Windows 平台上,InnoDB
使用可用的操作系统和库函数来执行“本机”异步 I/O。在其他平台上,InnoDB
仍然使用 I/O 线程,但线程实际上可能等待 I/O 请求完成;这种技术被称为“模拟” 异步 I/O。
预读
如果InnoDB
可以确定很有可能很快需要数据,它会执行预读操作以将该数据带入缓冲池,以便它在内存中可用。对连续数据发出几个大的读取请求可能比发出几个小的分散请求更有效。中有两种预读启发式InnoDB
:
- 在顺序预读中,如果
InnoDB
注意到对表空间中某个段的访问模式是顺序的,它会将一批数据库页面的读取提前发布到 I/O 系统。 - 在随机预读中,如果
InnoDB
注意到表空间中的某些区域似乎正处于被完全读入缓冲池的过程中,它会将剩余的读取发送到 I/O 系统。
有关配置预读启发式的信息,请参阅 第 15.8.3.4 节,“配置 InnoDB 缓冲池预取(预读)”。
双写缓冲区
InnoDB
使用一种新颖的文件刷新技术,该技术涉及一种称为 双写缓冲区的结构,在大多数情况下默认启用该结构 ( innodb_doublewrite=ON
)。它增加了意外退出或断电后恢复的安全性,并通过减少对fsync()
操作的需求来提高大多数 Unix 的性能。
在将页面写入数据文件之前,InnoDB
首先将它们写入称为双写缓冲区的存储区域。只有在对双写缓冲区的写入和刷新完成后,才会InnoDB
将页面写入数据文件中的适当位置。如果在页面写入过程中出现操作系统、存储子系统或意外 的mysqld进程退出(导致页面撕裂的 情况),InnoDB
则可以稍后在恢复期间从双写缓冲区中找到该页面的良好副本。
有关双写缓冲区的更多信息,请参阅 第 15.6.4 节,“双写缓冲区”。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
文章被以下合辑收录
评论
相关阅读
【MySQL 30周年庆】MySQL 8.0 OCP考试限时免费!教你免费领考券
墨天轮小教习
3363次阅读
2025-04-25 18:53:11
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
严少安
912次阅读
2025-04-25 15:30:58
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
539次阅读
2025-04-17 17:02:24
MySQL 8.0 OCP 1Z0-908 考试解析指南(二)
JiekeXu
361次阅读
2025-04-30 17:37:37
SQL优化 - explain查看SQL执行计划(下)
金同学
301次阅读
2025-05-06 14:40:00
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
数据库运维之道
299次阅读
2025-04-28 11:01:25
MySQL 8.0 OCP 1Z0-908 考试题解析指南
青年数据库学习互助会
293次阅读
2025-04-30 12:17:54
MySQL 官方准备了 3 个月的羊毛,万万没想到 8 天就被薅秃了,看看JieKeXu怎么说?
青年数据库学习互助会
268次阅读
2025-05-09 10:07:42
MySQL 8.4 新特性深度解析:功能增强、废弃项与移除项全指南
JiekeXu
249次阅读
2025-04-18 20:21:32
4月“墨力原创作者计划”获奖名单公布!
墨天轮编辑部
208次阅读
2025-05-13 16:21:59
TA的专栏
热门文章
我的故障分析及处理思路分享(李真旭)
2020-10-22 11220浏览
公共子表达式消除(Common Subexpression elimination,CSE)
2020-08-26 6243浏览
Oracle数据库的跟踪和分析方法
2020-10-02 5091浏览
2.5.9使用systemd管理MySQL服务器
2020-10-20 4585浏览
初探华为云GaussDB (for MySQL)
2020-12-11 3898浏览
最新文章
28.4.4 INFORMATION_SCHEMA INNODB_BUFFER_POOL_STATS 表
2024-09-29 114浏览
28.4.3 INFORMATION_SCHEMA INNODB_BUFFER_PAGE_LRU 表
2024-09-29 71浏览
28.4.2 INFORMATION_SCHEMA INNODB_BUFFER_PAGE 表
2024-09-29 71浏览
28.4.1 INFORMATION_SCHEMA InnoDB 表参考
2024-09-29 75浏览
28.3.50 INFORMATION_SCHEMA VIEW_TABLE_USAGE 表
2024-09-29 73浏览
目录