位图索引如何工作?

时间:2010-08-31 08:54:30

标签: sql database relational-database oracle9i

有没有人可以帮助我获得位图索引和反向键索引的逻辑表示?

1 个答案:

答案 0 :(得分:10)

反向键索引(在Oracle中)只是一个常规(B树)索引,键被反转(1234变为4321)。如果添加递增键,这可以防止不平衡的索引。它也使得范围扫描变得不可能,因此您在使用它时应该知道自己在做什么。

位图索引与B树索引完全不同。您可以将其视为每个键值的长位数组,每行有一个条目,如果该行具有此值,则设置为true,否则设置为false。对于只有少量不同值的列(例如,MALE,FEMALE),这比(B树索引)效果更好。您可以压缩这些位阵列,然后它们变得非常紧凑并且扫描速度快。

位图索引的主要问题是更新它们需要做很多工作,因此它们更适合于仓库方案,其中数据在夜间批处理中加载,然后仅在查询期间(而不是更改)那天。

维基百科也有一个很好的page about bitmap indexes