数据库基础之位图索引

 

位图索引用0,1来标示某条记录某个枚举字段属性的值,在多搜索码检索中,通过求与方式,达到快速定位的目的。

比方有表User

id

name

sex

education(学历)

 

记录

1,tom,m,初中

2,jack,f,大学

3,john,m,初中

4,robin,f,大学

5,rose,m,高中

 

假如sex有值:m,f

education有值:初中,高中,大学

 

对于查询sql

select *from user where sex='m' and education='初中'

 

我们建立针对sex和education的位图索引

对sex

m:10101(按每条记录来,如果该记录sex=m,则为1)

f:01010(和m正好相反)

对education(同上)

初中:10100

高中:00001

大学:01010

 

那么对于上面的查询,我们只要把m的位图值和初中的位图值,做一个简单与操作,

10101

10100

=10100

就可以知道第1和3条记录是满足检索条件的

 

小结

1、位图能达到最大优点是占用空间小,执行速度快

空间=记录总数N*Count(枚举值)个bit位

2、位图方式对于字段是枚举类型,且有多个这样字段的组合等于查询场景比较适合

 

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值