与线性表的缺点相同,想在文件中插入新的记录时,数据要整体往后移动。浪费时间。
一个文件中的记录都是指针连接的,好处就是增加新记录只需要修改指针,坏处就是要查找某一个记录需要顺序查找。
链式是整个磁盘一张索引表,索引分配是一个文件一个索引表,里面存放每个盘块的指针。
单级索引也有缺陷,如果文件很大,索引表也会很大,检索就会花费比较多时间,引入多级索引。
主索引和次索引以及磁盘块都是1kB,由于每一个块号占4B,那每一块可以存放256个盘号,主索引块可以存放256个次索引块号,一个次索引可以存放256个物理块号,一个物理块号是1KB,所以总的一个文件大小是2562561Kb = 64MB,可以将256转换成2的8次方计算。
十个直接索引,一个一级间接索引,一个二级间接索引,一个三级间接索引。
为了减少检索代价,从小的开始,先是直接索引,没有占用索引块,之后是一级索引占用一个索引块,因为一个索引块是1K个地址块,所以除1K可以算出需要的二级索引的块号。
之后将索引块相加(红色部分)。