[发明专利]一种数据的查询方法及装置有效
申请号: | 201710796412.4 | 申请日: | 2017-09-06 |
公开(公告)号: | CN110019292B | 公开(公告)日: | 2021-05-04 |
发明(设计)人: | 徐文华 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/2455 |
代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 申健 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 查询 方法 装置 | ||
本申请实施例公开了一种数据的查询方法及装置,涉及计算机技术领域,解决了由于在Redis缓存系统中增加复杂条件的索引键以及与该索引键对应的对象记录导致数据量倍增的问题。具体方案为:数据的查询装置获取查询请求,并根据该查询请求中的对象标识符、字段标识符,以及预存的第一对应关系,获取M个索引字段中每个索引字段的索引类型,且在M个索引字段中存在索引字段的索引类型为非唯一索引的情况下,数据的查询装置根据每个索引字段的索引键和缓存中存储的索引,获取与每个索引键对应的主键值集合,并根据与每个索引键对应的主键值集合和缓存中存储的主键值以及与主键值对应的对象记录,获取目标记录集合。本申请实施例用于查询数据的过程中。
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种数据的查询方法及装置。
背景技术
在客户关系管理(customer relationship management,CRM)系统频繁访问数据库(oracle)的情况下,会由于数据库中存储的数据量较大、需要经常访问硬盘文件使得查询性能下降。为了提升查询性能,考虑到缓存通过内存进行高速数据交换,因此可以将频繁访问的数据存储在缓存中,以便可以从缓存中快速查询到数据。
Redis是一种具有索引键(key)和索引值(value)结构,且支持基于索引键查询的缓存系统,例如,索引键为对象的主键,用于唯一标识一条对象记录,索引值为该主键对应的对象记录。这样,在Redis缓存系统中便可以基于主键查询到对象记录。但是,在实际的查询场景中,通常除了基于主键的查询外,还会存在基于复杂条件的查询,如基于非主键的查询、多条件的查询、非等值的查询等。此时,对于复杂条件的查询,便无法在Redis缓存系统中查询到对象记录,只能通过访问数据库来查询满足复杂条件的对象记录,这样会导致查询性能下降。
在现有技术中,可以在Redis缓存系统中增加基于复杂条件的索引键以及与该索引键对应的对象记录来支持复杂条件的查询,但是这样会由于复杂条件的组合较多导致数据量倍增。例如,假设有10个对象,在基于主键查询的情况下,缓存中仅需有10条记录,但是在基于两个字段查询的情况下,每个字段各有10个值,那么将这两个字段的字段值合并后作为索引键便会有100种组合,即Redis缓存系统中会有100条记录。
发明内容
本申请实施例提供一种数据的查询方法及装置,解决了由于在Redis缓存系统中增加复杂条件的索引键以及与该索引键对应的对象记录导致数据量倍增的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请提供一种数据的查询方法,该方法包括:数据的查询装置获取包括有对象标识符、N个字段中每个字段的字段标识符和字段值的查询请求,并根据该查询请求中的对象标识符、N个字段中每个字段的字段标识符,以及预存的第一对应关系,获取N个字段包括的M个索引字段中每个索引字段的索引类型。且数据的查询装置在判断出M个索引字段中存在索引字段的索引类型为非唯一索引的情况下,根据每个索引字段的索引键和缓存中存储的索引,获取与每个索引键对应的主键值集合,并根据与每个索引键对应的主键值集合和缓存中存储的主键值以及与主键值对应的对象记录,获取目标记录集合。其中,N为大于0的整数,M为小于或等于N的正整数,第一对应关系中可以包括对象标识符、字段标识符以及索引类型,该对象标识符可以对应至少一个字段标识符,字段标识符与索引类型一一对应,索引类型包括唯一索引和非唯一索引。索引字段的索引键包括对象标识符、该索引字段的字段标识符和字段值,索引包括索引键以及与索引键对应的主键值集合。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710796412.4/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置