索引与算法

B+ 树索引并不能找到一个给定键值的具体行。B+ 树索引能找到的只是被查找数据行所在的页。然后将页读入内存,再在内存中进行查找,最后得到要查找的数据。

扇入性(fan in):

是指直接调用该模块的上级模块的个数,扇入大,代表模块的复用程度高。

扇出性(fan out):

扇出大一般是因为缺乏中间层次,应该适当增加中间层次的模块。扇出太小,可以把下级模块进一步分解成若干个自功能模块,或者合并到它的上级模块中去。

B+树的数据结构中,有一个特性就是高扇出性,因此在数据库中,B+树的高度一般在2到4层,这就意味着查找某一个键值的行记录时,最多只需要2到4次的IO。

数据库中的B+树索引可以分为聚集索引(clustered index)和辅助索引(secondary index),但是不管是聚集还是辅助的索引,其内部都是B+树的,即高度平衡的,叶子节点存放着所有的数据。聚集索引与辅助索引不同的是,叶子节点存放的是否是一整行的信息。

聚集索引(clustered index):

按照每张表的主键构建一棵B+树,同时叶子节点中存放的即为整张表的行记录数据,也将聚集索引的叶子节点称为数据页。聚焦索引的这个特性决定了索引组织表中的数据也是索引的一部分,同B+树结构一样,每个数据页都通过一个双向链表来进行连接。

posted @ 2019-05-05 14:44  Victor!!!!  阅读(470)  评论(0)    收藏  举报