Database design 以'为单位写入磁盘;第'页;
最近,我一直在阅读数据库管理系统(Raghu Ramakrishnan和Johannes Gehrke)。它说,磁盘空间管理器负责以页面为单位的分配/解除分配/读/写操作,以确保在一个磁头读/写中进行最大数量的数据操作,从而将时间减到最少。现在,要实现一个函数,将一页写入磁盘,我可以执行以下操作:- 1-将n字节的数据写入内存中的缓冲区,其中n是页面大小Database design 以'为单位写入磁盘;第'页;,database-design,file-io,Database Design,File Io,最近,我一直在阅读数据库管理系统(Raghu Ramakrishnan和Johannes Gehrke)。它说,磁盘空间管理器负责以页面为单位的分配/解除分配/读/写操作,以确保在一个磁头读/写中进行最大数量的数据操作,从而将时间减到最少。现在,要实现一个函数,将一页写入磁盘,我可以执行以下操作:- 1-将n字节的数据写入内存中的缓冲区,其中n是页面大小 2使用C++中的简单文件I/O操作将此缓冲区写入文件。 我的问题是,这n个字节是否会成功写入磁盘上的一页,或者在使用此过程时是否会出现其他失真
2使用C++中的简单文件I/O操作将此缓冲区写入文件。
我的问题是,这n个字节是否会成功写入磁盘上的一页,或者在使用此过程时是否会出现其他失真,从而阻止缓冲区作为一页数据写入磁盘,尽管其大小等于页面大小。如果不是一页的话,我应该采取什么方法?非常感谢 通常,数据库系统会使用直接I/O将内存中的页面持久化到磁盘。数据库系统可以通过直接I/O控制、估计和优化磁盘写入,直接I/O不受操作系统或缓冲库的缓冲 您可以通过以下链接引用操作系统的系统调用: