Index
Primary Index(用在key上)
格式是Block anchor: Block Pointer
每个Block只存第一个
Block anchor的值是这个field的值
Clustering index
排好序,非key field
因为有重复的anchor值,只记录这个anchor值第一次出现时对应的是哪个block
Secondary Index(on key field, unsorted)
Dense index: 一个entry对应一个record
有两层架构
1.第一层存distinct field值,和对应的block
2.第二层对应的block里有好几个pointer,因为这是non-key field的index,会有重复的,每个pointer指向对应的block位
总的来说,一个anchor值对应好几个pointer,每个pointer对应到record对应的block位置
Muti-level index
每一层存下一层block头的entry,到最终头部只有一个block
Dynamic Multi-level index(B+ trees)
每一层的每一个node都是half-full和complete-full之间,留下空间给增加和删除操作
增加:如果有一个node满了,就要分成两个node,这种splitting有可能向上级扩展
删除:如果删除之后小于一半满,就和旁边的node合并
bitmap index
表里每一个record每一个attribute可能的值创造一个index
比如说一个表里的gender栏里有男女,对应的gender index就是
0
1
0
1
1
1
bitmap的缺点,不能应用在频繁改变的数据上,可能牵一发而动全身。