Record Blocking
记录是存取文件的逻辑单位,而数据块是IO的基本单位,记录必须组织成数据块以便于IO。
问题:
- 数据块的长度固定还是可变?
- 大多数系统采用固定长度的数据块,以简化I/O操作、Buffer的分配及辅存中数据块的组织管理。
- 根据记录的平均长度如何设置数据块的长度?
- 数据块越大,一次I/O传输的记录就越多
- 大数据块适合文件顺序访问,因为这样可以减
少I/O次数,加快处理速度- 当随机访问文件,或访问局部性很差时,传输的部分记录不会使用,效率低。
- 另外,大数据块需要更大的I/O buffer,增加其管理复杂度
固定组块方式 Fixed Blocking
- 数据块由固定长度的若干条记录组成
- 块内可能会存在一些被浪费空间
可变长的跨块组块方式
- 数据块由变长记录组成,一条记录可以跨越两个数据块,可用指针记载一条跨块存储记录所在的下一数据块。
- 块内无浪费空间
可变长非跨块组块方式
- 数据块由变长记录组成
- 不允许一条记录跨越两个数据块
- 块内可能存在被浪费空间
网友评论