[发明专利]建立数据索引的方法、利用该索引查询数据的方法和系统在审
申请号: | 201010261159.0 | 申请日: | 2010-08-24 |
公开(公告)号: | CN102375852A | 公开(公告)日: | 2012-03-14 |
发明(设计)人: | 钱岭;齐骥;郭磊涛;周大;罗治国;孙少陵;张松波;张卫平 | 申请(专利权)人: | 中国移动通信集团公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京英赛嘉华知识产权代理有限责任公司 11204 | 代理人: | 余朦;王艳春 |
地址: | 100032 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 建立 数据 索引 方法 利用 查询 系统 | ||
技术领域
本申请涉及一种在数据库中建立数据索引的方法、以及利用该索引查询数据的方法。本申请还涉及一种数据库查询系统。
背景技术
数据库系统的逻辑结构中,主要包括上层的结构化查询语言(SQL)层和底层的存储引擎层。其中SQL层主要负责各种数据库操作的流程和处理。存储引擎层实现底层的数据存取的实际操作,包括数据的组织、存储、索引等。在数据的组织和存储方面,一般将数据通过操作系统的文件系统存储在磁盘上的文件中。为了有效地管理存储空间和便于存取,一般将这些存储空间分成多个存储页(Page),包括数据页和索引页,一个数据页一般可以存储多条数据记录(行)。
在数据库表中的数据量很多时,采用简单的扫描匹配方式所获得的性能往往无法满足用户的查询要求,而影响查询性能的主要因素是查询操作须访问的数据量和磁盘I/O量。在数据库实现中,索引是常用的优化查询性能的重要技术手段。通常状况下,由于索引记录仅包含索引键值以及很短的指针,索引实体比真实的数据要小很多。一个索引页可以存储数量更多的索引记录,这意味着在索引中查找时在I/O上占很大的优势。而且索引可以组织成支持快速查找的数据结构,如B-TREE查找树、HASH表等典型的数据结构。在查询时,根据查询条件,首先从索引中查找得到数据记录的存储位置,再从这些存储位置定位读取出数据记录,可以大大减少查询时须访问的数据量和磁盘I/O量,因此提高查询性能。数据库系统中常用的索引类型如B-TREE索引、HASH索引等,分别适用于不同的场合,它们的原理基本上都是通过查询的索引键值来快速定位数据记录的存储位置。
一条索引记录中包含的基本信息包括:索引键值(即定义索引时指定的所有字段的值)+逻辑指针(指向数据记录的位置)。在使用数据库时,用户可以根据查询需求,在数据表的某个或某几个列上建立适当的索引。在数据库中,对于在数据表中出现的每个索引键值,在索引中建立该键值对应的每条数据记录的逻辑指针(这里用RID表示,可以表示为对应数据页的ID+记录偏移量)的列表。这样,只要在索引中快速查找到匹配的索引键值,就可以获得和该键值对应的数据记录的逻辑指针列表。
以电信业务中的CDR数据表为例,一条CDR记录中一般包含用户号码(UserId)、时间标签(Timestamp)、对方号码(PeerId)等参数。一个CDR表的数据量一般非常大,例如有几亿条记录。常用的查询之一是查询某个用户的CDR记录,这就需要对用户号码(UserId)字段建立索引。图1示出了为某CDR数据表的用户号码(UserId)字段建立的一个普通的B+TREE索引结构及其对应的数据结构的一部分。这是一个密集索引,在数据页150的上一级索引页110中为每一条数据记录建立了一条索引记录。索引的叶子结点中包含索引键值及指向数据页中数据记录的逻辑指针,其记录数量与数据表数据记录数量一致。索引页100中的索引记录组成B+TREE结构。例如查找用户号码13500002的记录,首先从根索引页1001查到下一级索引页1007,再到叶子索引页1132,最后得到该用户号码对应的RID只有一个<1409,2>,即数据页1409中偏移量为2的记录。
如果在图1的索引结构中查找用户号码13600001的记录,则会按照相似的流程定位到叶子索引页1153,因为用户号码13600001在数据页1428中有400条数据记录,相应地在索引页1153中也有400条索引记录。在实际的CDR数据集中,这种高密度的数据记录出现的可能性比较大。这样由多条索引记录逐条定位和随机读取数据记录的效率可能比在指定数据页中顺序扫描还慢。
因此,需要本领域中需要迫切需要能够解决上述技术问题的数据库检索方案。
发明内容
一方面,本申请公开了一种在数据库中查询数据的方法,其中,所述数据库包括用来存储数据的多个单位存储空间,所述方法包括:
接收数据查询指令并确定所述数据查询指令中包括的索引键值;
确定所述索引键值是用于近似索引还是精确索引;
如果确定的结果是所述索引键值是用于近似索引,则通过所述索引键值,从所述近似索引在单位存储空间中标识的位置开始扫描查询数据记录,
如果确定的结果是所述索引键值是用于精确索引,则通过所述索引键值在所述单位存储空间中标识的位置处查询数据记录。
另一方面,本申请还公开了一种数据库查询系统,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国移动通信集团公司,未经中国移动通信集团公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010261159.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:大数据量消息管理方法和装置
- 下一篇:一种在线视频浓缩装置、系统及方法
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置