[发明专利]数据查询方法和装置在审
申请号: | 201711309217.0 | 申请日: | 2015-10-21 |
公开(公告)号: | CN108170726A | 公开(公告)日: | 2018-06-15 |
发明(设计)人: | 郭益君;毕杰山 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 索引数据 查询数据 主键 查询 查询请求 二级索引 索引列 方法和装置 查询效率 目标索引 数据查询 主索引 客户端提供 数据库领域 查询目标 过程操作 获取目标 目标行 记录 客户 | ||
本发明是关于一种数据查询方法和装置,属于数据库领域。所述方法包括:接收客户端的查询请求,查询请求中包含有查询数据;根据查询请求查询主索引的目标二级索引,得到查询数据对应的目标行主键;从主索引中获取目标行主键对应的目标索引行中的索引数据;向客户端提供目标索引行中的索引数据。本发明通过查询数据查询目标二级索引,该目标二级索引中的第一索引列中记录有至少两个第二索引列中的索引数据,得到查询数据对应的行主键,再获取该行主键对应的索引数据,解决了相关技术中在进行查询时,查询效率较低的问题;达到了进行一次查询就能够查询多个第二索引列中的索引数据的效果,查询过程操作简单,查询效率较高。
技术领域
本发明涉及数据库领域,特别涉及一种数据查询方法和装置。
背景技术
数据库表是数据库中用于存储数据的对象,数据库表中通常以行和列的形式存储着多个值,一行数据为一个记录(例如在通讯录数据库中某个人全部的信息),一列数据(一个字段)记录有该数据库表中同一数据类型的所有值(如通讯录数据库中所有人的家庭住址)。在数据库表中查询数据时,为了更快的获取想要获取的整行数据,通常需要建立索引。索引是对数据库表中一列或多列的值进行排序的一种结构。索引通常包括主索引(一级索引)和二级索引,主索引记录有数据库表中的所有行的数据,其中,每行数据称为一个索引行,每列数据称为一个索引列,每行数据中的任一索引数据都对应于该行的行主键(Rowkey),二级索引通常是根据主索引中的索引列与这索引列中每个索引数据对应的行主键建立的。
相关技术中有一种数据查询方法,在该方法中,客户端在不知道查询数据(该查询数据是客户端想要获取的整行数据中的一个索引数据)的所属索引列时,需要查询根据该查询数据多个可能所属的索引列建立的多个二级索引,而每查询一个二级索引,客户端就要向服务端(数据库位于服务端)发送一次查询请求(包含有查询数据),服务端在接收到这一查询请求后,会查询对应的二级索引,在查询完多个二级索引后,服务端向客户端返回多次查询的结果(若查询到多个二级索引中存在该查询数据,则获取该查询数据对应的行主键,根据该行主键查询主索引得到行主键对应的整行数据,最后向客户端返回该整行数据,若在多个二级索引中未查询到该查询数据,则向客户端返回没有满足条件的数据的指示)。例如:查询数据为电话号码,作为查询数据的电话号码可能属于主索引中手机号码、家庭号码和办公号码这三列数据中的任一列,客户端在查询时需要根据电话号码向服务端发送查询根据手机号码、家庭号码和办公号码这三列数据建立的三个二级索引的三个请求,服务端会根据查询这三个索引的三个请求分别查询这三个索引,之后服务端向客户端返回查询这三个索引的查询结果。
发明人在实现本发明的过程中,发现上述方式至少存在如下缺陷:上述方式在进行查询时,需要分别查询多个二级索引,查询过程的操作成倍增长,查询效率较低。
发明内容
为了解决相关技术中在进行查询时,需要分别查询多个二级索引,查询过程的操作成倍增长,查询效率较低的问题,本申请提供了一种数据查询方法和装置。所述技术方案如下:
第一方面,提供一种数据查询方法,所述方法包括:
数据库端接收客户端发送的包含有查询数据的查询请求,查询数据为主索引中记录的一个索引数据;
数据库端根据接收到的查询请求查询主索引中的目标二级索引,得到查询数据对应的目标行主键,其中目标二级索引包含有第一索引列,该第一索引列中记录了主索引中至少两个第二索引列中的索引数据,且每个第二索引列中的每个索引数据各自与主索引中的一个行主键对应,第一索引列是指二级索引中的索引列,第二索引列是指主索引中的索引列;
数据库端在获取了目标行主键后,根据目标行主键查询主索引,并获取目标行主键对应的目标索引行中的索引数据,该目标索引行中的索引数据为客户端想要获取的数据;
数据库端向客户端提供目标索引行中的索引数据完成数据的查询。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711309217.0/2.html,转载请声明来源钻瓜专利网。