0
点赞
收藏
分享

微信扫一扫

(P10-P11)数据库系统下-索引


文章目录

  • ​​1.索引的概念​​
  • ​​2.索引的特点​​
  • ​​3.关于索引应用的评价问题​​
  • ​​4.索引相关的概念​​

1.索引的概念

书籍、词典/字典中的词汇表(索引表)

  • 词汇表等包含两部分: 词条, 词条在文件中的页码
  • 词汇表等通常按词条进行某种方式的排序
  • 目的是通过对“有序的小数据量的词汇表”的快速查找,发现词条在“大数据量书籍中”出现的位置

索引是定义在存储表(Table)基础之上,有助于无需检查所有记录而快速定位所需记录的一种辅助存储结构,由一系列存储在磁盘上的索引项(index entries)组成,每一索引项又由两部分构成:

  • 索引字段: 由Table中某些列(通常是一列)中的值串接而成。
    索引中通常存储了索引字段的每一个值(也有不是这样的)。
    索引字段类似于词典中的词条。
  • 行指针: 指向Table中包含索引字段值的记录在磁盘上的存储位置。
    行指针类似于词条在书籍、词典中出现的页码。

存储索引项的文件为索引文件,相对应,存储表又称为主文件

(P10-P11)数据库系统下-索引_存储结构

2.索引的特点

索引文件是一种辅助存储结构,其存在与否不改变存储表的物理存储结构; 然而其存在,可以明显提高存储表的访问速度。
索引文件组织方式有两种: (相对照的,主文件组织有堆文件、排序文件、散列文件、聚簇文件等多种方式)

  • 排序索引文件(Orderedindices):按索引字段值的某一种顺序组织存储
  • 散列索引文件(Hashindices):依据索引字段值使用散列函数分配散列桶的方式存储

在一个表上可以针对不同的属性或属性组合建立不同的索引文件,可建立多个索引文件。
索引字段的值可以是Table中的任何一个属性的值或任何多个属性值的组合值。

  • 索引文件比主文件 小很多。(索引文件是几个列的组合值,而主文件有多个列) 通过检索一个小的索引文件(可全部装载进内存),快速定位后,再有针对性的读取非常大的主文件中的有关记录(将主文件的表记录从磁盘加载到内存)
  • 有索引时,更新操作必须同步更新索引文件和主文件。

3.关于索引应用的评价问题

索引技术应用使检索效率大幅度提高,但同时其也增加了存储空间、使维护负担加重(不仅要维护主文件,而且要维护索引文件)
衡量索引性能好坏:

  • 访问时间
  • 插入时间
  • 删除时间
  • 空间负载
  • 支持存取的有效性,比如:支持的是属性的限定值(是否符合单一值),还是支持属性的限定范围的值(是否符合一定范围)
  • 对哪些属性建立索引?SELECT…FROM…WHERE…GROUP BY…
    对经常出现在检索条件、连接条件、分组计算条件中的属性可建立索引

4.索引相关的概念

字段、排序字段、索引字段

  • 在索引文件中,每个索引项都有一个索引字段
  • 在主文件中,按照哪个属性进行排序,称之为排序字段

码(Key)、主码(Primary Key), 又称为表键(Table Key)—具有唯一性和最小性

  • 排序码(OrderKey)—对主文件进行排序存储的那些属性或属性组
  • 索引码(IndexKey)—即索引字段,不一定具有唯一性
  • 搜索码(SearchKey)—在主文件中查找记录的属性或属性集
    (教材中把“索引字段”统称为“索引码(Indexkey)”)请注意区分

主文件 vs.索引文件

  • 索引文件是一种辅助存储文件,主文件是DB中所有的数据,索引文件可以没有,但是主文件必须有


举报

相关推荐

0 条评论