数据库基础之位图索引

数据库基础之位图索引nbsp 位图索引用 0 1 来标示某条记录某个枚举字段属性的值 在多搜索码检索中 通过求与方式 达到快速定位的目的 比方有表 Useridnamese 学历 nbsp 记录 1 tom m 初中 2 jack f 大学 3 john m 初中 4 robin f 大学 5 rose m 高中 nbsp 假如 sex 有值 m feducation 有值 初中

 

位图索引用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、位图方式对于字段是枚举类型,且有多个这样字段的组合等于查询场景比较适合

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/227614.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午8:54
下一篇 2026年3月16日 下午8:54


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号