• 文件特点
    主文件主关键字 有序,因此可以对 一组记录 建立 一个 索引项(非稠密索引)

  • 索引顺序存取方法 / ISAM
    专门为磁盘存取设计的文件组织方法
    主文件柱面 集中存放,同时建立 三级索引主索引柱面索引磁道索引
    文件的记录在 同一盘组 存放时,应先集中放在一个柱面上,然后再顺序放在相邻的柱面上;对于同一柱面,应按照盘面的顺序来存放。
    如下图是存放在一个磁盘组上的ISAM文件

    每个柱面 建立一个 磁道索引磁道索引 中的每个 磁道索引项 由两部分组成:基本索引项溢出索引项
    每个索引项都包括 关键字指针 两项。
    关键字 表示该磁道中最末一个记录的关键字(在此为 最大关键字)。
    指针 指示该柱面上的磁道索引位置。
    如下图所示:

    柱面索引 也是存放在 某个柱面 上,若柱面索引较大,占多个磁道时,可以建立 柱面索引的索引,也就是 主索引

  • 在ISAM文件上检索记录时,
    先从 主索引 出发,找到相应的 柱面索引
    再从 柱面索引 找到记录所在柱面的 磁道索引
    最后从 磁道索引 找到 记录所在磁道的第一个记录的位置
    由此出发在该磁道上进行 顺序查找 直到找到为止。

  • 每个柱面上还开辟有一个 溢出区 ,并且磁道索引项中设有 溢出索引项 ,这是为了 插入记录 所设置的。
    ISAM文件中记录是按 关键字顺序 存放的,则在 插入记录 时需要 移动记录 ,并将同一磁道上最后一个记录移至溢出区,还要修改 磁道索引项
    每个柱面的 基本区顺序存储结构溢出区链表结构 ,同一磁道溢出的记录由 指针 相链。
    该磁道索引的 溢出索引项 中的 关键字 指示 该磁道溢出的记录的最大关键字 ,指针指示在溢出区中的第一个记录。

  • 举例
    如下图a为插入前某一柱面上的状态

    如下图b为插入 R65时,将第二道中关键字大于65的记录顺次后移,使 R90 溢出至溢出区的情况

    如下图c为插入 R65 之后的状态,此时2道的基本索引项的关键字改为80,且溢出索引项的关键字改为90,其指针指向第4道第一个记录即 R90

    如下图d是相继插入 R95 和 R83 后的状态,R95 插入在第3道的第一个记录的位置而使 R145 溢出。而由于 80 < 83 < 90,则 R83 被直接插入到溢出区,作为第二道在溢出区的第一个记录,并将它的指针指向 R90 的位置,同时修改第二道索引的溢出索引项的指针指向 R83

  • 溢出区的三种设置方法
    1、集中存放 :整个文件设一个大的单一的溢出区
    2、分散存放:每个柱面设一个溢出区(上图12.8中就是使用此法)
    3、集中与分散相结合 :溢出时记录先移至每个柱面各自的溢出区,待满之后再使用公共溢出区

  • ISAM文件的删除操作
    只需找到 待删除的记录 ,再起存储位置上作 删除标记 即可,不需要移动记录或改变指针,但在经过多次的增删后,文件的结构可能变得很不合理。可能会有大量的记录进入溢出区,而基本区中又浪费很多空间,需要周期地整理 ISAM 文件,填满基本区而空出溢出区。

  • ISAM文件中柱面索引的位置
    通常 磁道索引 放在 每个柱面的第一道上
    柱面索引不应该放在文件的第一个柱面上;每一次检索都需要先查找柱面索引,则磁头需在各柱面间来回移动,希望 磁头移动距离的平均值最小。
    因此 柱面索引 应放在 数据文件的中间位置的柱面上

12.4.1 索引顺序存取方法文件 / ISAM文件相关推荐

  1. 数据结构之ISAM文件和VSAM文件

    1.ISAM文件 索引顺序存取方法ISAM 为Indexed Sequential Access Methed的缩写,它是一种专为磁盘存取设计的文件组织方式.由于磁盘是以盘组,柱面和磁道三级地址存取的 ...

  2. 12.4.2 虚拟存取方法文件 / VSAM文件

    虚拟存储存取文件 / VSAM 文件 文件只有 控制区间 和 控制区域 等逻辑存储单位: 与外存储器中柱面.磁道等具体存储单位没有必然的联系,用户在存取文件中的记录时,不需要考虑这个记录的当前位置是否 ...

  3. 2022/12/17 mysql 索引基本原理解读

    1什么是索引 索引是帮助MySQL 高效获取数据的数据结构,通过使用索引可以在查询的过程中,使用优化隐藏器,提高系统的性能. https://www.cs.usfca.edu/~galles/visu ...

  4. 查找——索引顺序表和倒排表

    查找 8.3 索引顺序表和倒排表 8.3.1 索引顺序表 (1)完全索引 (2)二级索引 结论 8.3.2 倒排表 (1)链式倒排索引表 (2)单元倒排索引表 特点 8.3 索引顺序表和倒排表 当数据 ...

  5. 有序表的索引顺序结构查找次数分析

    有序表的索引顺序结构查找次数分析 @(算法学习) 为了提高查找效率,对65025个元素的有序顺序表建立索引顺序结构,在最好情况下查找到表中已有元素,平均需要执行(B)次关键字比较. A. 10 B. ...

  6. 索引顺序查找(分块查找)

    索引顺序查找又叫分块查找,它是介于顺序查找和折半查找之间的一种查找方法.折半查找虽然具有很好的性能,但其前提条件是线性表顺序存储而且按照关键字排序,这一前提条件在结点数很大且表元素动态变化时难以满足. ...

  7. MATLAB中怎样初始化(创建)二维、三维、四维以及多维矩阵,各维度的索引顺序是怎样的?

    目录 1 在MATLAB中初始化二维矩阵 2 在MATLAB中初始化三维矩阵 3 在MATLAB中初始化四维矩阵 4 在MATLAB中初始化N维矩阵 1 在MATLAB中初始化二维矩阵 在MATLAB ...

  8. python修改csv文件字段顺序_python 操作csv文件写入顺序不对

    我是初学者不太懂 为什么在终端显示是正确的顺序到了csv 文件中就是另一回事了呢 还有就是 csv 文件怎么可以运行之后继续填写 而不是清空文件呢? 图片: 代碼: import urllib.req ...

  9. VMware Workstation Pro 12 无法使用超过4G大小的ghost镜像文件进行系统还原的 傻 快 处理方案

    VMware虚拟机安装 超过4GB Ghost 64位win7 的方法-亲测,需要支持请留言 VMware Workstation Pro 12 无法使用超过4G大小的ghost镜像文件进行系统还原的 ...

最新文章

  1. C++ 预编译的时候使用defined 的含义
  2. 关于JQuery中的ajax请求或者post请求的回调方法中的操作执行或者变量修改没反映的问题...
  3. c语言位运算符读音,C语言六种位运算符
  4. nstruts2.0发布前奏---浅谈struts和依赖注入在项目中的应用
  5. IOS静态库生成及测试
  6. 全面提升AR感知能力的新款iPad Pro或将延期发布
  7. 【codevs1519】 过路费
  8. php 写入.csv文件注意点
  9. Android开发之在不同API上遇见的坑
  10. 64位win8系统加64位sql server 2008,性能提高了好多
  11. matlab炮灰模型,非诚勿扰的数学分析
  12. 西北大学计算机课表,西北大学课表
  13. 大司、小司、外包公司
  14. ROS入门——解决RLException: Unable to launch [xxx-2]
  15. Android OpenGL ES从入门到进阶(六)—— OpenGL ES人像美白与磨皮初探
  16. Windows 使用技巧 -- 自定义桌面图标显示
  17. 联想服务器linux系统raid驱动,ThinkSystem服务器RAID 530/930系列阵列卡驱动及安装RHEL7.3要点说明...
  18. 解决阿里云OSS使用URL无法访问图片
  19. 免费影视综艺动漫的手机APP(支持双端)
  20. AAA配置与管理——2

热门文章

  1. Android 消息队列
  2. python-藏头诗与成语接龙(爬虫)
  3. flash as3使用,播放声音和加载外部声音文件
  4. http请求头中的host是什么意思
  5. C语言 —— 嵌套语句的使用
  6. 2022抖音温暖中国年 集年味分7亿玩法攻略
  7. C++经典算法题-兔子增长题
  8. oracle出现101,oracle常见问题(101-200)
  9. 股票F10关键字过滤工具:13年年报10转10股票一览,截止2014年3月10日 共67只
  10. 梦幻仙缘剧情java_梦幻仙缘ios下载-梦幻仙缘苹果版1.0 ios变态版-东坡下载