索引分为聚簇索引 和非聚簇索引,聚簇索引也叫主索引它对表的物理数据页中的数据按索引列进行排序,然后重新存储到磁盘上,它的叶节点中存储的就是实际数据,一个表只能有一个聚簇索引。非聚簇索引也叫辅助索引,它具有和表的数据完全分离的结构,非聚簇索引的页节点存储了组成非聚簇索引的关键字的值以及行定位器
数据库常用的索引: B树索引,哈希索引
数据仓库常用索引: 位图索引,连接索引,位图连接索引
位图索引(bitmap) :
位图索引的引入是为了解决B树索引遇到的键值重复较多导致的效率低下的问题,它的索引数据的方式和B数索引完全不同。
B树索引每个索引键存储一个行号(rowid),通过这个行号找到相应的记录。但是位图索引的每个键值会存储指向很多行的指针。
这个存储特性决定了位图索引非常适合对索引字段的count操作,以及索引字段之间的and or 操作
比如,一个员工表job里有‘职位’这么个字段,它包含值: 普通员工,经理,主任,助理4个职位,形成的位图索引会如下图:
普通员工 0100010001001
经理 1000001000000
主任 0000000010000
助理 0011100100110
哪一位上有1 ,对应的这条记录上此字段是这个取值。