数据库系统实现第四章笔记

第四章 索引

概论:1.主索引;2.辅助索引;3.B树;4.散列表

4.1顺序文件上的索引



4.2辅助索引

辅助索引不决定记录位置;辅助索引都是稠密索引。

4.2.1 

4.2.2  聚簇文件:解决多表索引问题。

4.2.3辅助索引中的间接

桶:用来减少键值的存放空间。从而减小索引文件。(适用于关系中有很相同键记录的情况)

4.2.4文档索引和倒排索引

一篇文档可以看作一条记录。这样就用倒排索引来快速的检索文档。

倒排索引:并不是每一个字段建立一个索引,是把所有索引合成一个索引。



4.3B树

商用一般采用B树和其变种B+树;

B树能保证磁盘块在半满到满之间。

4.3.1

问题:

一个磁盘的块大小为4096Byte,键值采用int(4Byte),指针采用long(8Byte)问B树的阶数应该是多少?

4*n+8*(n+1)<=4096. n=340。

所以一般B树都在成百上千阶。


4.3.2 B树的应用

晦涩

4.3.3 B树的查找

简单

4.3.4 范围查询

简单

4.3.5B树的插入

繁杂

4.3.6 B树的删除

繁杂

4.3.7B树的效率

B树阶数很大时,很少要分裂结点,及时分裂也是在叶节点及其父节点,因此B树I/O重组的开销很小。

B树一般3层就可以了。所以一般进行3次磁盘I/O

问题:假设磁盘块大小是4096Bytes.B树的阶数是n=340.B树每个结点的平均指针数是255。则B树储存了多少个Key-Pointer对?B树最多能储存多少个Key-Pointer对?

答:1.一个根结点有255个子结点,255个子节点有255*255个叶结点。255*255个叶结点有255*255*255个Key-Pointer对。大约是1.66*10^7即 16 000 000 一千六百万

    2.同理 最大能存 341*341*341个

4.3.8 散列表

略!

你可能感兴趣的:(数据库系统实现第四章笔记)