B树和位图

Anonim

B树和位图

Oracle中使用了两种类型的索引。这些是B树和位图。这些索引用于性能调整,这实际上使得查找记录并快速检索它们。索引函数为索引列中显示的所有值创建条目。 B-Tree索引是OLTP系统使用的类型,主要默认实现。另一方面,位图是一种高度压缩的索引格式,在大多数情况下,它在数据仓库中使用。

通常可以将位图称为索引方法,但可以寻求性能优势和存储节省。如前所述,它的使用主要在数据仓库环境中。这样做的原因是因为数据的更新不是那么频繁,并且即时查询在环境中更多。在Bitmap的实现中,低基数数据是首选。对于具有较低选项(如性别)的列项,位图是首选,它只有2个值且是首选。仓库中的静态数据也是使用Bitmap极好实现的数据的一个很好的特征。 Bitmap的另一个特征是比特流,其中每个比特被实现为表的单个行中的列值。

另一方面,B树索引是在包含非常唯一值的列上创建的索引。 B-Tree索引具有有序的条目,其中每个条目具有搜索键值和引用给定行和值的指针。如果服务器找到与所讨论的值相关的匹配约束,则部署指针以获取该行。

两者之间的差异之一是B-Tree中存在低重复和高共同性,而Bitmap中则相反。位图具有高重复实例和低亲切度。 Bitmap索引被认为比B-Tree索引更有优势,因为它具有数百万行的表,因为指定的列具有低基数。因此,与B-Tree索引相比,Bitmap中的索引提供了更好的性能。

收集小数据集时,B树似乎非常快,在大多数情况下,数据不应超过数据库大小的10%。当有很多不同的值被索引时,这两个一起工作。 B-Tree也是独一无二的,可以合并多个索引以生成非常有效的程序。另一方面,当有较低的索引值以获得最大效率时,位图往往效果最佳。

在寻找超过子集数据10%的更大数据子集时,B树很差。 Bitmap接受了这一挑战,可以提供高质量的结果,因为当几乎没有不同的值时,它可以更好地工作。

如果使用B-Tree在繁忙的表中有许多索引,则在插入索引数据时或者在您需要插入和更新索引数据的情况下,可能会出现小问题。这对Bitmap来说不是问题,因为无论大小有多大,它都非常有效地插入和更新值。

摘要

B-Tree和Bitmap是Oracle中使用的两种索引 位图是一种索引方法,可提供性能优势和存储节省 B-Tree索引是在包含非常唯一值的列上创建的索引 B-Tree最适用于许多不同的索引值 位图最适合许多不同的索引值