10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册 本手册摘录

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缓冲池预取(预读)”

Doublewrite缓冲

Innodb.使用一种新的文件刷新技术,涉及名为doublewrite缓冲,大多数情况下默认启用(innodb_doublewrite =上).它增加了意外退出或断电后恢复的安全性,并通过减少对Unix的需求提高了大多数Unix上的性能fsync()操作。

在向数据文件写入页面之前,Innodb.首先将它们写入名为DoubleWrite缓冲区的存储区域。只有在写入之后,刷新到双手缓冲区已完成Innodb.将页写入数据文件中的适当位置。如果存在操作系统、存储子系统或意外情况mysqld.进程在页写中间退出(导致撕裂条件),Innodb.稍后可以在恢复期间从DoubleWrite缓冲区找到页面的好副本。

有关Doublewrite缓冲区的更多信息,请参阅第15.6.4节,“Doublewrite缓冲区”