关于位图索引,搜索到一个很通俗的例子:
1、语法
create bitmap index index_name on 表名(字段);2、举个例子你就能明白了:
如有表 test(id,name,address)
数据
(1,张三,大连)
(2,李四,天津)
(3,王五,北京)
(4,赵六,大连)
....
类似这样的数据,如果查询的时候用到 【where address='大连'】
因为数据库中有很多这样的数据,
所以一般的索引起不到查询加速的作用,
而建立位图索引后会产生如下位图效果:
假设有4条数据(就如上所示)
大连 天津 北京
1 0 0
0 1 0
0 0 1
1 0 0
这样当查询:
select * from 表 where address='大连' or address='北京';
的时候数据库很快就能根据 同行的 1和0 判断出那一条数据符合要求。
BITMAP索引适合低基数库表例如:表A的row1列去重后只有3个值,但是库表有上万条记录,那么对row1列建索引的话,位图是合适的。