[Oracle] 位图索引

位图索引的原理





位图索引的优势

1、高速统计条数
因为位图索引仅仅存储0和1的指,因此它的空间占用非常小。向count(*)之类的操作用位图索引就非常快。
2、高效即席查询
我们在OLAP系统中,常常会做多维度的统计,如人口普查,常常会须要做一些关于性别、年龄、出生地的多维度查询,这样的就是即席查询。
位图索引很有用用于即席查询,由于对于计算机来说,就是0和1直接的与或运算,很迅速。

位图索引的劣势

1、反复度低导致位图索引巨大无比

从上面的原理我们能够知道,假设位图的索引列的唯一性非常高,那位图索引将有可能比原表还大,这显然是不合适的。

2、常常更新导致大量的锁
假设我们更新gender='M'的一条记录。则全部gender='M'的记录都被锁住。其他的会话将无法更新这些数据,这对于并发度非常高的OLTP系统来说,简直是恶梦。

因此,位图索引适合场景要满足两个条件:
1、位图索引列大量反复
2、该表极少被更新


原文地址:https://www.cnblogs.com/wgwyanfs/p/7027544.html