数据库系统实现 第4章 索引结构

 几种索引:

1)排序文件上的简单索引

2)非排序文件上的辅助索引

3)B树

4)散列表

主索引

1)稠密索引:每个主键都有

2)稀疏索引:每个数据块存放一个键

3)多级索引:索引上的索引

4)重复查找键的索引: 比较简单的解决方法是在稠密索引上的每种键值都建立一个索引

数据修改期间的索引维护

1)创建或删除一个空溢出块:对两种索引均无影响,因为稠密索引针对记录,稀疏索引针对基本存储快

2)创建或删除文件的块:对稠密索引无影响,对稀疏索引有影响

3)插入或删除记录:对稠密索引有相同的影响。当不产生额外块的时候对稀疏索引无影响

4)移动一个记录,对稠密索引有影响,当记录的移动改变某个块的第一条的时候对稀疏索引有影响。

辅助索引

主索引决定了被索引记录的位置,而当查询条件不是对主键的判断的时候,可以利用辅助索引来加速。

CREATE INDEX DBindex ON MovieStar(birthdate);

此时

SELECT name,address

FROM MovieStar(birthdate);

WHERE birthdate = DATE'1950-01-01';

这条查询就会变快

辅助索引的设计

辅助索引是稠索引,通常具有重复值,为了便于快速找到给定键值的索引,可是对其构建二级索引。

 

B树

每个B树的索引都有一个参数n,决定了每个存储块对应n个键值与n+1个指针。

B树中有几个重要的规则

1)根节点中至少有两个指针被使用,所有指针指向B树的下一层

2)叶节点中最后一个指针指向它右边的下一个也 

 

posted @ 2017-09-05 22:11  icodefive  阅读(219)  评论(0编辑  收藏  举报