数据库索引

2017-09-05  本文已影响0人  wayyyy
索引
顺序文件组织和顺序索引

顺序索引按顺序存储搜索码的值,并将每一个搜索码与包含该搜索码的记录关联起来。
一个文件(专指数据库文件)可以有多个索引,分别基于不同的搜索码。
如果包含记录的某个文件按照某个搜索码指定的顺序排列,那么该搜索码对应的索引称为聚集索引(主索引)
文件不是按照某个搜索码排列的,那这个搜索码对应的索引称为非聚集索引(辅索引)
索引项或索引记录由一个搜索码值和指向具有该搜索码值得一条或多条记录的指针构成。其中又分为稠密索引和稀疏索引。

利用稠密索引通常可以比稀疏索引更快地定位一条记录。
但是稀疏索引相比于稠密索引占据的空间更小,并且插入和删除更容易维护。
必须在时间和空间上有所权衡。通常为每一个块建立一个稀疏索引是比较好的折中,因为处理数据库的开销主要由把块从磁盘读到主存中的时间决定。一旦将块放入主存中,扫描整个块的时间可以忽略的。

B-树

虽然一级索引或两级索引通常有助于加快查询,但在商用系统中常用一种更通用的结构,这一通用结构称为B-树,最常用使用的是其称为B+树的变体。
【1】B-树能自动保持与数据文件大小相适应的索引层次
【2】对所使用的存储块空间进行管理,使每个块的充满程度在半满和全满之间。

B-树.png
散列文件组织和散列索引

顺序文件组织的一个缺点就是我们必须访问索引结构来定位数据,或者必须使用二分法搜索。这会导致过多IO操作。
我们用桶来表示能存储一条或多条记录额度存储单位,通常一个桶就是一个磁盘快。

上一篇下一篇

猜你喜欢

热点阅读