先将内存中汇总再写入硬盘,是不是相比把多个小数据依次写入硬盘这种方式,占用的连续扇区会多一些而不是随机无序的扇区?
这个不一定。因为操作系统决定了文件系统,而文件在磁盘上的分布,是文件系统决定的。以windows ntfs6(windows 10所采用的文件系统)为例,它的簇是4KB,而现在的硬盘甚至会要求612K对齐,这意味着,在这些工况下,无论你怎么读写,都不会产生512K以下的碎片。
另外,操作系统会利用内存构造非常大的缓存,并且会优先使用磁盘上连续的空间,这意味着,连续多次反复读写,并不一定造成碎片。
我看到很多数据库管理系统都是先在内存中汇总一次然后再写入磁盘,如果这样不会带来在磁盘层面上的存储优化,那数据库管理系统怎么才能尽量让数据分布在连续分区?PS:我看到书上说实现数据库管理系统时应尽量让数据分布在连续的扇区或同一个柱面