[Oracle] 位图索引

位图索引的原理


[Oracle] 位图索引_第1张图片


位图索引的优势

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

位图索引的劣势

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

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

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

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


你可能感兴趣的:(oracle,更新,锁,位图索引)