Multidimensional Index的数据结构
单维度索引是一棵B-树。如果一个索引由多个key组成,是一个Multidimensional Index(多维索引),该怎么办? 基本的方法是建一个Index of Index. 确切地说,是为第一个属性建立一个B-树,这棵树的叶子结点指向的不是记录,而是第二个属性的B-树,第二属性的B-树叶结点指向的才是记录(如果还有第三属性,则第二属性树的叶结点指向第三个属性的B-树) 举个简化的例子。假设第一属性是性别,第二属性是年龄。 最终的树就是:(前两列代表索引项,最右一列是记录) 男 老 德华 少 冠希 女 老 嘉玲 少 阿娇 可以看出,第一属性只有一棵索引树;第二属性则有多棵索引树,第一属性的每个叶结点都会挂一棵第二属性的索引树。 查询的效率,取决于它有没有指定第一属性的值。如果指定了,就可以从唯一的第一属性的索引树中沿树根而下; 如果没有,就要遍历每棵第二属性索引树,性能会差很多。