索引的目的
简而言之,加快搜索索引结构
索引分类
聚集–非聚集
稠密–稀疏
有序–散列几种分类并不冲突
顺序索引
顺序索引前文讲过了,请参考http://blog.youkuaiyun.com/luzhangting/article/details/51497513。下面给个例子,以中间列为索引。
简单的辅助索引
B+树索引
树节点三类:根节点、叶节点、非叶节点6.1叶节点结构
6.2非叶节点结构
6.3 B+树的查询过程
B+不仅支持随机查询,也支持范围查询。
查询过程:树的遍历
查询代价:log n6.4 B+树的维护(重点)
例1:插入例子,插入Clear,B、D之间扩展,指针不够,向上扩展
这里父节点未满,引入新的节点。
例2:插入40
需要插入到第5个节点,但是节点满了,需要进行分裂,分裂成2个节点
此时父节点指针不够用,向上分裂。
此时父节点的指针又不够用了,接着向上,根节点没有满,不用分裂,可以直接插入值,此时应该插入40,因为40是这一分支追溯到叶节点的最小值。
散列索引
重点:散列函数、搜索码值,B个桶。根据B是否固定分为静态散列和动态散列。