首页 > 编程知识 正文

位图数据结构(位图索引初步)

时间:2023-05-04 03:34:33 阅读:123494 作者:3096

一、什么是位图索引位图索引是使用位图的特殊数据库索引。 计算机的所有信息最终都用“位”进行运算,二进制位运算在计算机中非常高效。 位图索引也称为位图索引,因为它在索引处理中使用0或1。 3358www.Sina.com/例如,有一个文件,记录中有两个字段:长什么样?年龄(age)。 这个文件有六个记录。 号码1(20,未婚)号码2 ) 22,未婚)号码3 )号码4 )号码26,已婚)号码5 )号码6 )号码30,二婚)号码7 ) 30,未婚)记录的号码http://www.Sina.com/以rowid 123456720100000022010000010000100000280000001003000000000000011http://www.Sina.com/rowid 1234567 20为例,向量的每一行打1,不打0。 同样是status表。 所以我们出了下面两个表。 值向量2010000022010002400100026000026000010001000100280000100000000000000000000003 0000001

值向量未婚1110000已婚0001100二婚0000010表中的向量值是与每个值对应的位图索引。婚姻状况(status)如果我们需要26已婚的0001000 0001100职位和: 0001000

在《数据库》中例3.41中,求出同一表中的范围检索用位,或者在两个表之间交叉使用位。 由两个表可知的矢量的位数或长度由记录的根数决定。 记录根数越多,矢量越长。 所有向量的总位数为记录的种类*记录根数。age向量表1,中的示例显示,位图索引为列中的每个键值创建位图。 位图中的每个位可以对应多个列。 位图的中值为1表示该行的值是相应的键值。 2、相对于B*Tree索引,占用空间非常小,创建和使用非常快。status向量表位图索引是为数据仓库设计的,位图索引不适用于OLTP系统。 此外,如果系统中的数据经常由多个并发会话更新,则它也不适用于位图索引。 这是因为位图索引条目指向多行。 如果会话更改了索引的数据,则大多数情况下,此索引项指向的所有行都将被锁定。 补充OLTP系统: OLTP (在线事务处理,OLTP )。 面向事务的处理过程的基本特征是将前台接收的用户数据立即传输到计算中心进行处理,并在短时间内提取处理结果,是快速响应用户操作的方式之一。 也称为实时系统。 3358www.Sina.com/位图索引的使用非常谨慎,同时属性值选择非常少(例如性别)的属性基本上不修改,是充分固定的(例如性别) 3358 www.Sina.com 压缩的目的是压缩这些“0”,因为在这个向量中大部分是0,1占很小的一部分,而大部分空间是0。 《数据库系统实现》中提到的常见方法是将http://www.Sina.com/http://www.Sina.com /一个向量分成多个段,并分别进行编码。 《数据库系统实现》段是指I个0后跟一个数组,等于或大于0。 由此可见,一、一个段中只有一个。 这1一定在这一列的末尾。 2、一个段可以没有0。 例如,“1”这样的序列。 在怎么使用《数据库》中描述的编码方法是将1,0的个数I转换成二进制数所占的比特数j。 (j几乎等于log2 *i ) j进位。 2、确定一元: 《数据库》的一元表示为j-1个1,再1个0。 所以,在压缩编码中,这个0就像分隔符。 3、压缩编码格式为一元I的二进制数。

注意:如果I为1,即只有一个0,则编码为01;如果I为0,即没有0,则编码为00。 这是因为,对于log2*1和log2*0,j=1(j会向上舍入。 那么一元中“1”的个数是0,“0”的个数永远是1。 后面加1 (或0 )的二进制表示。 所以是01和00。

备注2 :列举几个十进制的二进制表示很容易理解。 十进制二进制3112101100 二、特点和优点1,从头找到前0,在第几位找到前0,我们必须查找的二进制显示位是多少? 2、从刚才找到0的位置开始,后面的j位是个数I的二进制显示数。 重复执行3、1和2的过程。 4、这样解码的向量都以1结束。 但是,向量中有以0结束的,因为知道所有记录的数量,所以解码向量的长度也知道。 后面缺的位直接补0就可以了。 备注:段用1分隔,解码用0分隔。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。