CN116483829A - 数据查询方法、装置、计算机设备和存储介质 - Google Patents
数据查询方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN116483829A CN116483829A CN202310212559.XA CN202310212559A CN116483829A CN 116483829 A CN116483829 A CN 116483829A CN 202310212559 A CN202310212559 A CN 202310212559A CN 116483829 A CN116483829 A CN 116483829A
- Authority
- CN
- China
- Prior art keywords
- index
- query
- index field
- target cache
- field value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000004590 computer program Methods 0.000 claims abstract description 29
- 238000013507 mapping Methods 0.000 claims abstract description 17
- 230000002457 bidirectional effect Effects 0.000 claims description 10
- 238000001914 filtration Methods 0.000 claims description 7
- 238000012216 screening Methods 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 7
- 238000013499 data model Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 235000021018 plums Nutrition 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及分布式缓存和大数据技术领域,特别是涉及一种数据查询方法、装置、计算机设备、存储介质和计算机程序产品。该方法包括:获取查询请求,查询请求包括查询字段和查询关键字;根据查询字段在多个缓存索引中匹配对应的目标缓存索引;其中,缓存索引为倒排索引,记录了索引字段与主键的映射关系;索引字段包括缓存的非主键字段;根据查询关键字在目标缓存索引的索引字段范围中查询,确定包括查询关键字的索引字段值集合;索引字段范围用于存储各缓存索引包括的索引字段值;根据索引字段值集合在目标缓存索引中查找对应的主键值集合;根据主键值集合在缓存中查找得到目标数据。该方法能够提高数据查询效率。
Description
技术领域
本申请涉及分布式缓存和大数据技术领域,特别是涉及数据查询方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着我国信息科学的不断发展,业务系统遍布了各行各业,单个业务系统的规模也越来越大。在此背景下,人们基于业务系统进行查询的需求日益增加,如何提高数据查询效率满足人们需求成为一个亟需解决的问题。
为提高查询效率,通常可以采用构建二级索引的方式,但这种方式只能满足特定查询字段的查找,应用场景有限,从而导致查询效率受限。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高查询效率的数据查询方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种数据查询方法。所述方法包括:
获取查询请求,所述查询请求包括查询字段和查询关键字;
根据所述查询字段在多个缓存索引中匹配对应的目标缓存索引;其中,所述缓存索引为倒排索引,记录了索引字段与主键的映射关系;所述索引字段包括缓存的非主键字段;
根据所述查询关键字在所述目标缓存索引的索引字段范围中查询,确定包括所述查询关键字的索引字段值集合;所述索引字段范围用于存储各所述缓存索引包括的索引字段值;
根据所述索引字段值集合在所述目标缓存索引中查找对应的主键值集合;
根据所述主键值集合在所述缓存中查找得到目标数据。
第二方面,本申请还提供了一种数据查询装置。所述装置包括:
查询获取模块,用于获取查询请求,所述查询请求包括查询字段和查询关键字;
索引匹配模块,用于根据所述查询字段在多个缓存索引中匹配对应的目标缓存索引;其中,所述缓存索引为倒排索引,记录了索引字段与主键的映射关系;所述索引字段包括缓存的非主键字段;
筛选模块,用于根据所述查询关键字在所述目标缓存索引的索引字段范围中查询,确定包括所述查询关键字的索引字段值集合;所述索引字段范围用于存储各所述缓存索引包括的索引字段值;
主键查找模块,用于根据所述索引字段值集合在所述目标缓存索引中查找对应的主键值集合;
数据查找模块,用于根据所述主键值集合在所述缓存中查找得到目标数据。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述各实施例的数据查询方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述各实施例的数据查询方法的步骤。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各实施例的数据查询方法的步骤。
上述基于数据查询方法、装置、计算机设备、存储介质和计算机程序产品,通过为缓存的非主键字段构建缓存索引,记录索引字段与主键的映射关系,并设置缓存索引的索引字段范围,索引字段范围记录了缓存索引包括的索引字段值,当获取到查询请求时,根据查询字段在多个缓存索引中匹配目标缓存索引,利用目标缓存索引的索引字段范围筛选出包括查询关键字的索引字段值得到索引字段值集合,根据索引字段值集合在目标缓存索引中查找到主键值集合,进而根据主键值集合在缓存中查找到目标数据。该方法一方面通过非主键字段对应的缓存索引,能够实现当查询字段为非主键字段时仍能够快速响应用户的查询需求,另一方面,利用缓存索引的索引字段范围,能够过滤出包括查询关键字的索引字段值集合,获得精确的查询对象,再根据索引字段值集合在索引中查找对应的主键集合,根据主键集合在目标缓存中查找得到目标数据,从而能够满足模糊查询或条件查询的查询需求,提高了数据查询效率。
附图说明
图1为一个实施例中数据查询方法的应用环境图;
图2为一个实施例中数据查询方法的流程示意图;
图3为一个实施例中缓存结构的示意图;
图4为一个实施例中缓存索引的结构示意图;
图5为一个实施例中缓存索引的索引字段范围的结构示意图;
图6为一个实施例中根据查询关键字在目标缓存索引的索引字段范围中查询,确定包括查询关键字的索引字段值集合的步骤的流程示意图;
图7为一个实施例中根据索引字段值集合在目标缓存索引中查找对应的主键值集合的步骤的流程示意图;
图8为另一个实施例中数据查询方法的流程示意图;
图9为另一个实施例中数据查询装置的结构框图;
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的数据查询方法,可以应用于如图1所示的应用环境中,该应用环境包括终端102和应用服务器104。终端响应于查询请求,将查询终端发送至应用服务器104。应用服务器获取查询请求,查询请求包括查询字段和查询关键字;根据查询字段在多个缓存索引中匹配对应的目标缓存索引;其中,缓存索引为倒排索引,记录了索引字段与主键的映射关系;索引字段包括缓存的非主键字段;根据查询关键字在目标缓存索引的索引字段范围中查询,确定包括查询关键字的索引字段值集合;索引字段范围用于存储各缓存索引包括的索引字段值;根据索引字段值集合在目标缓存索引中查找对应的主键值集合;根据主键值集合在缓存中查找得到目标数据。
其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种数据查询处理方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤202,获取查询请求,查询请求包括查询字段和查询关键字。
其中,基于实际业务场景,获取用户触发的查询请求,查询请求包括查询字段和查询关键字。作为一个业务场景的实例,可以为用户在查询页面,输入指定的查询字段以及查询关键字,向服务器发送查询请求。以订单查询为例,用户在查询页面,可以输入产品、时间等信息,作为查询关键字,向服务器发送查询请求。
步骤204,根据查询字段在多个缓存索引中匹配对应的目标缓存索引;缓存索引为倒排索引,记录了索引字段与主键的映射关系;索引字段包括缓存的非主键字段。
在实际业务中,为了防止过高的数据访问猛冲系统,导致其操作线程无法处理而瘫痪,通常会使用缓存技术。缓存,就是数据交换的缓冲区,缓存数据存储于代码中,而代码运行在内存中,内存的读写性能高于磁盘,缓存可以大大降低用户访问并发量带来的服务器读写压力。
通常数据表的每一列为一个字段,数据表的主键字段通常具有唯一性,如学号,身份证号等,能够实现精准查询。而在缓存查询的业务场景,为提高查询效率,对于数据表中的各非主键字段分别构建缓存索引,缓存索引为倒排索引,各缓存索引记录了索引字段与主键的映射关系,索引字段包括缓存的非主键字段。
例如,学生成绩表以学号为主键字段,还包括语文成绩、数学成绩、班级等非主键字段,则分别以语义成线、数学成绩和班级等非主键字段,设置对应的缓存索引。
其中,缓存可以采用Redis,Ehcache等中间件,具体采用Hash数据结构来存储数据。其中,键值用来存储缓存的名称H,用Hash数据结构来存储该缓存的数据。其中Hash数据结构中的Key用于存储缓存中每条数据主键,Value用于存储每条数据所有值的序列化数据。采用这种缓存的数据模型与关系型数据库表结构类似,能通过缓存的名称和对应主键快速查询数据。一个实施例中Hash缓存与关系型数据表的存储模式如图3所示。
本实施例中,通过对缓存的各非主键字段构建缓存索引能够基于缓存的非主键进行查询,例如建立语文成绩对应的缓存索引,从而能够基于该缓存索引实现基于某个语文成绩数值查找到对应的主键,进而基于主键在缓存中查找到目标数据。
具体地,基于缓存索引的非主键字段为索引字段,记录索引字段与主键的映射关系得到缓存索引。因此,缓存索引为非主键字段对应的索引,缓存索引的数量与缓存的非主键字段的数量相同。
其中,可以将查询字段与各缓存索引的索引字段进行匹配,确定查询字段对应的目标缓存索引。
步骤206,根据查询关键字在目标缓存索引的索引字段范围中查询,确定包括查询关键字的索引字段值集合;索引字段范围用于存储各缓存索引包括的索引字段值。
其中,倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。
对于缓存,为提高查询效率,均设置了非主键字段对应的缓存索引。本实施例中缓存的索引采用倒排索引,具体是根据缓存主键的键值建立的,将具体缓存名、字段名作为被索引的对象。对图3的缓存构建的倒排索引如图4所示。基于倒排索引,能够根据字段值查找对应的主键。
将业务的查询请求进行分类,可以分为精准查询和非精准查询,其中,非精准查询可以包括模糊查询以及条件查询。其中,精准查询是指以主键字段为查询字段的查询,以主键字段为查询关键字,能够精准得到与查询关键字对应的唯一查询结果。例如,以身份证号码为查询关键字,能够得到对应的唯一的身份信息。
模糊查询是利用数据的部分信息进行查找的一种查询方式。如输入“李*”,以查询姓李的所有的人信息。条件查询是输入字段的限制条件,以达到查询的目的。如输入成绩字段的限制条件“90-95”,则可以查询成绩在90-95分的所有的人信息。
在一些业务场景中,用户有模糊查询的需求,或是条件查询的需求,此时,用户输入的并不是具体的某个字段的字段值,而是字段值范围,或是部分信息。若直接基于缓存索引字段进行查询,则需要遍历缓存索引,导致查询效率降低。
针对该问题,本实施例中,基于各缓存索引,可以构建索引字段范围,用于存储缓存中每个索引字段值。其中索引字段值为缓存主键对应的键值(value)。例如,对图4的索引,构建的索引字段范围如图5所示,其记录了每个索引字段的索引字段值(value)及其出现次数。
通过将查询关键字在目标缓存索引的索引字段范围中查找,索引字段值集合在目标缓存索引中查找,通过从目标缓存索引的索引字段范围中快速筛选中包括目标关键字的索引字段值。例如,用户输入的查询请求为名字字段的“李*”,名字字段对应的目标缓存的索引字段范围记录了所包括的具体的名字,通过在名字字段对应的目标缓存索引中的索引字段范围中查询,可以查找到索引字段集合为“李三、李四、李五”,避免遍历全部缓存索引,提高了查询效率。
步骤208,根据索引字段值集合在目标缓存索引中查找对应的主键值集合。
在得到索引字段值集合后,由于目标缓存索引记录的是索引字段与主键的映射关系,因此,基于索引字段值集合中的索引字段值能够查找以对应的主键,得到主键集合。
例如,根据索引字段集合为“李三、李四、李五”,在名字缓存索引中,查找到“李三、李四、李五”的学号,得到主键值集合。
步骤212,根据主键值集合在缓存中查找得到目标数据。
具体地,根据主键集合在缓存中查找,得到主键对应的目标数据,例如,根据“李三、李四、李五”的学号,能够根据学号查找到缓存各字段的数据。
通常而言,查询字段值的类型可以为数值类型以及字符类型,该数据查询方法可以满足数值类型和字符类型的数据查询的需求。
上述的数据查询方法,通过为缓存的非主键字段构建缓存索引,记录索引字段与主键的映射关系,并设置缓存索引的索引字段范围,索引字段范围记录了缓存索引包括的索引字段值,当获取到查询请求时,根据查询字段在多个缓存索引中匹配目标缓存索引,利用目标缓存索引的索引字段范围筛选出包括查询关键字的索引字段值得到索引字段值集合,根据索引字段值集合在目标缓存索引中查找到主键值集合,进而根据主键值集合在缓存中查找到目标数据。该方法一方面通过非主键字段对应的缓存索引,能够实现当查询字段为非主键字段时仍能够快速响应用户的查询需求,另一方面,利用缓存索引的索引字段范围,能够过滤出包括查询关键字的索引字段值集合,获得精确的查询对象,再根据索引字段值集合在索引中查找对应的主键集合,根据主键集合在目标缓存中查找得到目标数据,从而能够满足模糊查询或条件查询的查询需求,提高了数据查询效率。
在另一个实施例中,在数据库表的应用场景中,数据表记录了多个属性,各数据表之间可以通过关联某个属性进行关联,通过SQL引擎查询而实现多表查询。
不同于数据表,基于缓存查询的应用场景中,缓存以Key-Value的数据结构存储,如果需要查询多个信息,且各信息分别分布在不同缓存时,如何关联各缓存实现多缓存联合查询是一个问题。例如,缓存A中记录了学生的基础诈,如姓名、家庭住址、年龄、性别等,缓存B中记录了学生的学习成绩,查询请求为“性别为女生”以及“语文成绩为90-95”,即希望能够查询到语文成绩在90-95分的女生的信息。
针对此问题,本实施例中,若查询字段为至少两个,如图6所示,根据查询关键字在目标缓存索引的索引字段范围中查询,确定包括查询关键字的索引字段值集合,包括:
步骤602,获取至少两个查询字段对应的目标缓存索引的连接方式。
其中,各目标缓存索引对应的连接方式是预先设置的。连续方式可以包括内连接、外连接、左连接和右连接。
内连接,同时将两表作为参考对象,根据两表的连接条件将两表连接起来。结果则是两表同时满足连接条件的部分才会列出。
左连接,是以左表为基础,根据两表的连接条件将两表连接起来。结果会将左表所有的查询信息列出。
右连接,是以右表为基础,根据两表的连接条件将两表连接起来。结果会将右表所有的查询信息列出。
外连接,通常指的是完全外连接,指结果表中除了包括满足连接条件的行外,还包括两个表的所有行。
步骤604,根据查询关键字在对应的目标缓存索引的索引字段范围中查询,获取各目标缓存索引对应的查询关键字的索引字段值。
具体地,将每个查询关键字在其对应的目标缓存索引的索引字段范围中查找,得到每个查询关键字对应的索引字段值。以查询请求为“性别为女生”和“语文成绩90-95分”为例,对于关键字“性别为女生”,在性别索引字段对应的缓存索引的索引字段范围中查找,得到对应的索引字段值,以及对于关键字“语文成绩90-95分”,在语文成绩字段对应的缓存索引的索引字段范围中查找,得到对应的索引字段值。
步骤606,根据连接方式和各目标缓存索引对应的查询关键字的索引字段,确定索引字段值集合。
具体地,根据目标缓存索引的连接方式,将各查询关键字的索引字段值进行对应的连接处理,得到索引字段值集合。
本实施例中,通过连接方式以及各查询关键字的索引字段,确定索引字段值集合,能够满足多个关键字的数据查询。本实施例中的查询字段不限于相同缓存的查询字段,可以为不同缓存的查询字段,当查询字段为不同缓存的查询字段时,分别从各缓存对应的索引字段中确定其对应的索引字段范围即可。例如,某个查询请求包括两个查询字段,查询字段M属于缓存A,查询字段N属于缓存B,则获取缓存A的索引字段M的索引字段范围,获取缓存B的索引字段N的索引字段范围,获取索引字段M和索引字段N对应的目标缓存索引的连接方式,根据字段M在和字段N分别在对应的目标缓存索引的索引字段范围中查询,获取对应的查询关键字的索引字段值;根据连接方式和各目标缓存索引对应的查询关键字的索引字段,确定索引字段值集合。
其中,当连接方式为左连接时,确定目标缓存索引中的左表;将左表对应的查询关键字的索引字段,确定索引字段值集合。例如,当字段M对应的目标缓存索引为左表,则左连接的索引字段集合为根据字段M在对应的目标缓存索引中查找到的索引字段值,若以M的取值范围表示,则当连接方式为左连接时,索引字段值集合={M的取值范围}。
其中,当连接方式为右连接时,确定目标缓存索引中的右表;将右表对应的查询关键字的索引字段,确定索引字段值集合。例如,当字段N对应的目标缓存索引为右表时,将右连接的索引字段集合为根据字段N在对应的目标缓存索引中查找到的索引字段值,若以N的取值范围表示,则当连接方式为右连接时,索引字段集合={N的取值范围}。
其中,当连接方式为内连接时,将目标缓存索引对应的查询关键字的索引字段的交集,确定为索引字段值集合。例如,以M的取值范围表示根据字段M在对应的目标缓存索引中查找到的索引字段值,以N的取值范围表示根据字段N在对应的目标缓存索引中查找到的索引字段值,当连接方式为内连接时,索引字段值集合={M与N范围的交集}。
其中,当连接方式为外连接时,将目标缓存索引对应的查询关键字的索引字段的并集,确定为索引字段值集合。例如,以M的取值范围表示根据字段M在对应的目标缓存索引中查找到的索引字段值,以N的取值范围表示根据字段N在对应的目标缓存索引中查找到的索引字段值,当连接方式为内连接时,索引字段值集合={M与N范围的并集}。
本实施例中,利用倒排索引将多个缓存关联起来,可以基于索引实现缓存的内连接、右连接、内连接和外连接,解决了多缓存查询的问题。
具体地,多缓存联合查询时,主键值集合包括主键对列表。
根据索引字段值集合在全部目标缓存索引中查找对应的主键值集合,如图7所示,包括:
步骤702,对索引字段值集合的各索引字段值进行判断。
步骤704,根据索引字段值在全部目标缓存索引中均能查找到主键值,则根据各目标缓存索引查找到的主键值构建双向关联对,得到主键对列表。
具体地,从索引字段值集合中取出各索引字段值依次在每个目标缓存索引中查找,若能够到全部目标缓存索引中查找到对应的主键时,则将各目标缓存索引查找到的主键值构建双向关联对。例如,根据索引字段值U1在缓存A的目标缓存索引中查找到主键值MK1和MK2,根据索引字段值U1在缓存B的目标缓存索引中查找到主键值NK1,则构成双向关联对(MK1,NK1)和(MK2,NK1)。
在另一个实施例中,还包括步骤706,若根据索引字段值在其中一个目标缓存索引中查找到对应的主键值,则根据该目标缓存索引的主键值构建单向关联对,得到主键对列表。
具体地,从索引字段值集合中取出各索引字段值依次在目标缓存索引中查找,若能够在其中一个目标缓存索引中查找到对应的主键时,则根据该目标缓存索引的主键值构建单向关联对。例如,根据索引字段值U1在缓存A的目标缓存索引中查找到主键值MK1和MK2,根据索引字段值U1在缓存B的目标缓存索引中未查找到主键值,则构成单向关联对(MK1,null)和(MK2,null)。
在其中一个实施例中,主键对列表集合包括了索引字段值对应的双向关联对和单向关联对。根据主键对列表在缓存中查找得到目标数据。具体地,对于主键对列表中的每个关联对,分别将每个主键在对应的目标缓存中取数,将取后的数据放入同一个关联容器(MAP)中关联,形成目标数据。
利用上述的查询方法,可以支持缓存与缓存之间按照索引字段进行连接(左连接、右连接、内连接、外连接);通过连接的类型和缓存索引的字段范围确定倒排索引的查询范围,根据查询范围一次搜索倒排索引,形成两个缓存的主键对列表,根据主键对列表搜索缓存中的数据,形成最终的连接结果。
在一个实施例中,如图8所示,数据查询方法两个阶段,分别为构建结构和数据查询阶段,其中,在构建阶段包括以下步骤:
步骤802,构建缓存。
其中,缓存采用Hash数据结构来存储数据;具体采用键值来存储缓存的名称H,用Hash数据结构来存储该缓存的数据D,其中Hash数据结构中的Key用于存储缓存中每条数据主键,Value用于存储每条数据所有值的序列化数据。采用这种缓存的数据模型与关系型数据库表结构类似,能通过缓存的名称和对应主键快速查询数据。一个实施例的缓存结构如图3所示。
步骤804,构建缓存索引的字段范围。
具体地,缓存索引的字段范围,用于存储某个缓存下某个索引的所有字段值,并记录每种字段值出现的次数,通过这种方式,可以明确的声明出哪些字段需要构建倒排索引。在按该索引进行缓存查询时,可以通过“缓存索引的字段范围”来判断缓存中是否有符合查询条件的数据。一个实施例的缓存索引的字段范围如图5所示。
其中,的倒排索引构建过程中引入了缓存索引字段范围,缓存索引字段范围明确指出了当前缓存字段值的存在范围。
步骤806,构建缓存索引。
具体地,缓存索引采用倒排索引。倒排索引采用List的数据结构来存储数据;新增缓存数据时,会根据缓存中的索引字段值构建倒排索引,如果索引不存在,构建索引,并在List中添加该数据对应的“缓存名|字段名|主键”,如果索引已经存在,直接添加至List,添加完后更新“缓存索引的字段范围”记录。一个实施例中,倒排索引如图4所示。
其中,所有缓存都用同一套倒排索引,通过倒排索引可以迅速查询到哪些缓存那些数据的哪个字段为索引值。可以大大提升缓存(非主键查询)的查询执行效率。
采用用以上数据模型构建缓存时,当查询的字段为索引字段时,可通过倒排索引进行缓存查询,不仅支持普通的精确查询,还支持模糊查询和范围条件查询;具体步骤为根据查询的缓存和查询字段搜索“缓存索引的字段范围”,根据查询的条件(精确、模糊、条件)查询出符合条件的字段。根据字段采用倒排索引查询出该缓存该字段的所有主键集合,根据主键集合在缓存中查询对应的数据。
其中,在数据查询阶段,当为单缓存查询时,包括以下步骤:
步骤808,获取查询请求,查询请求包括查询字段和查询关键字。
步骤810,根据查询字段在多个缓存索引中匹配对应的目标缓存索引。
步骤812,根据查询关键字在目标缓存索引的索引字段范围中查询,确定包括查询关键字的索引字段值集合。
步骤814,根据索引字段值集合在目标缓存索引中查找对应的主键值集合。
步骤816,根据主键值集合在缓存中查找得到目标数据。
其中,在数据查询阶段,当为多缓存联合查询时,包括以下步骤:
步骤818,获取查询请求,查询请求包括查询字段和查询关键字。
步骤820,根据查询字段在多个缓存索引中匹配对应的目标缓存索引。
步骤822,获取至少两个查询字段对应的目标缓存索引的连接方式。
步骤824,根据查询关键字在对应的目标缓存索引的索引字段范围中查询,获取各目标缓存索引对应的查询关键字的索引字段值。
步骤826,根据连接方式和各目标缓存索引对应的查询关键字的索引字段,确定索引字段值集合。
步骤828,对索引字段值集合的各索引字段值进行判断。
步骤830,若根据索引字段值在全部目标缓存索引中均能查找到主键值,则根据各目标缓存索引查找到的主键值构建双向关联对,得到主键对列表。
步骤832,若根据索引字段值在其中一个目标缓存索引中查找到对应的主键值,则根据该目标缓存索引的主键值构建单向关联对,得到主键对列表。
步骤834,对于主键对列表中的每个关联对,分别将每个主键在对应的目标缓存中取数,将取后的数据放入同一个关联容器(MAP)中关联,形成目标数据。
该数据查询方法,只要保证缓存采用相同的数据存储结构,可以支持跨组件使用。如Redis中存储的缓存和Ehcache中存储的缓存,通过本方法可以进行连接操作。具体地,可以支持缓存与缓存之间按照索引字段进行连接,包括左连接、右连接、内连接和外连接。连接的过程中无需遍历数据,在缓存数据量较大时,能具有比较高的执行效率。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的数据查询方法的数据查询装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据查询装置实施例中的具体限定可以参见上文中对于数据查询方法的限定,在此不再赘述。
在一个实施例中,如图9所示,提供了一种数据查询装置,包括:
查询获取模块902,用于获取查询请求,所述查询请求包括查询字段和查询关键字。
索引匹配模块904,用于根据所述查询字段在多个缓存索引中匹配对应的目标缓存索引;其中,所述缓存索引为倒排索引,记录了索引字段与主键的映射关系;所述索引字段包括缓存的非主键字段。
筛选模块906,用于根据所述查询关键字在所述目标缓存索引的索引字段范围中查询,确定包括所述查询关键字的索引字段值集合;所述索引字段范围用于存储各所述缓存索引包括的索引字段值。
主键查找模块908,用于根据所述索引字段值集合在所述目标缓存索引中查找对应的主键值集合。
数据查找模块910,用于根据所述主键值集合在所述缓存中查找得到目标数据。
上述基于数据查询装置,通过为缓存的非主键字段构建缓存索引,记录索引字段与主键的映射关系,并设置缓存索引的索引字段范围,索引字段范围记录了缓存索引包括的索引字段值,当获取到查询请求时,根据查询字段在多个缓存索引中匹配目标缓存索引,利用目标缓存索引的索引字段范围筛选出包括查询关键字的索引字段值得到索引字段值集合,根据索引字段值集合在目标缓存索引中查找到主键值集合,进而根据主键值集合在缓存中查找到目标数据。该装置一方面通过非主键字段对应的缓存索引,能够实现当查询字段为非主键字段时仍能够快速响应用户的查询需求,另一方面,利用缓存索引的索引字段范围,能够过滤出包括查询关键字的索引字段值集合,获得精确的查询对象,再根据索引字段值集合在索引中查找对应的主键集合,根据主键集合在目标缓存中查找得到目标数据,从而能够满足模糊查询或条件查询的查询需求,提高了数据查询效率。
在其中一个实施例中,若查询字段为至少两个,筛选模块,用于获取至少两个查询字段对应的目标缓存索引的连接方式;根据查询关键字在对应的目标缓存索引的索引字段范围中查询,获取各目标缓存索引对应的查询关键字的索引字段值;根据连接方式和各目标缓存索引对应的查询关键字的索引字段值,确定索引字段值集合。
在其中一个实施例中,主键值集合包括主键对列表;主键查找模块,用于对索引字段值集合的各索引字段值进行判断;若根据索引字段值在全部目标缓存索引中均能查找到主键值,则根据各目标缓存索引查找到的主键值构建双向关联对,得到主键对列表。
在其中一个实施例中,主键查找模块,还用于若根据索引字段值在其中一个目标缓存索引中查找到对应的主键值,则根据该目标缓存索引查找到的主键值构建单向关联对,得到主键对列表。
在其中一个实施例中,筛选模块,用于当连接方式为左连接时,确定目标缓存索引中的左表;将左表对应的查询关键字的索引字段值,确定索引字段值集合。
在其中一个实施例中,筛选模块,用于当连接方式为右连接时,确定目标缓存索引中的右表;将右表对应的查询关键字的索引字段值,确定索引字段值集合。
在其中一个实施例中,筛选模块,用于当连接方式为内连接时,将目标缓存索引对应的查询关键字的索引字段值的交集,确定为索引字段值集合。
在其中一个实施例中,筛选模块,用于当连接方式为外连接时,将目标缓存索引对应的查询关键字的索引字段值的并集,确定为索引字段值集合。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储语音和画面数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据查询方法。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取查询请求,查询请求包括查询字段和查询关键字;
根据查询字段在多个缓存索引中匹配对应的目标缓存索引;其中,缓存索引为倒排索引,记录了索引字段与主键的映射关系;索引字段包括缓存的非主键字段;
根据查询关键字在目标缓存索引的索引字段范围中查询,确定包括查询关键字的索引字段值集合;索引字段范围用于存储各缓存索引包括的索引字段值;
根据索引字段值集合在目标缓存索引中查找对应的主键值集合;
根据主键值集合在缓存中查找得到目标数据。
在其中一个实施例中,若查询字段为至少两个,根据查询关键字在目标缓存索引的索引字段范围中查询,确定包括查询关键字的索引字段值集合,包括:
获取至少两个查询字段对应的目标缓存索引的连接方式;
根据查询关键字在对应的目标缓存索引的索引字段范围中查询,获取各目标缓存索引对应的查询关键字的索引字段值;
根据连接方式和各目标缓存索引对应的查询关键字的索引字段值,确定索引字段值集合。
在其中一个实施例中,主键值集合包括主键对列表;
根据索引字段值集合在目标缓存索引中查找对应的主键值集合,包括:
对索引字段值集合的各索引字段值进行判断;
若根据索引字段值在全部目标缓存索引中均能查找到主键值,则根据各目标缓存索引查找到的主键值构建双向关联对,得到主键对列表。
在其中一个实施例中,该处理器执行计算机程序时还实现以下步骤:
若根据索引字段值在其中一个目标缓存索引中查找到对应的主键值,则根据该目标缓存索引查找到的主键值构建单向关联对,得到主键对列表。
在其中一个实施例中,根据连接方式和各目标缓存索引对应的查询关键字的索引字段值,确定索引字段值集合,包括:
当连接方式为左连接时,确定目标缓存索引中的左表;
将左表对应的查询关键字的索引字段值,确定索引字段值集合。
在其中一个实施例中,根据连接方式和各目标缓存索引对应的查询关键字的索引字段值,确定索引字段值集合,包括:
当连接方式为右连接时,确定目标缓存索引中的右表;
将右表对应的查询关键字的索引字段值,确定索引字段值集合。
在其中一个实施例中,根据连接方式和各目标缓存索引对应的查询关键字的索引字段值,确定索引字段值集合,包括:
当连接方式为内连接时,将目标缓存索引对应的查询关键字的索引字段值的交集,确定为索引字段值集合。
在其中一个实施例中,根据连接方式和各目标缓存索引对应的查询关键字的索引字段值,确定索引字段值集合,包括:
当连接方式为外连接时,将目标缓存索引对应的查询关键字的索引字段值的并集,确定为索引字段值集合。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取查询请求,查询请求包括查询字段和查询关键字;
根据查询字段在多个缓存索引中匹配对应的目标缓存索引;其中,缓存索引为倒排索引,记录了索引字段与主键的映射关系;索引字段包括缓存的非主键字段;
根据查询关键字在目标缓存索引的索引字段范围中查询,确定包括查询关键字的索引字段值集合;索引字段范围用于存储各缓存索引包括的索引字段值;
根据索引字段值集合在目标缓存索引中查找对应的主键值集合;
根据主键值集合在缓存中查找得到目标数据。
在其中一个实施例中,若查询字段为至少两个,根据查询关键字在目标缓存索引的索引字段范围中查询,确定包括查询关键字的索引字段值集合,包括:
获取至少两个查询字段对应的目标缓存索引的连接方式;
根据查询关键字在对应的目标缓存索引的索引字段范围中查询,获取各目标缓存索引对应的查询关键字的索引字段值;
根据连接方式和各目标缓存索引对应的查询关键字的索引字段值,确定索引字段值集合。
在其中一个实施例中,主键值集合包括主键对列表;
根据索引字段值集合在目标缓存索引中查找对应的主键值集合,包括:
对索引字段值集合的各索引字段值进行判断;
若根据索引字段值在全部目标缓存索引中均能查找到主键值,则根据各目标缓存索引查找到的主键值构建双向关联对,得到主键对列表。
在其中一个实施例中,该处理器执行计算机程序时还实现以下步骤:
若根据索引字段值在其中一个目标缓存索引中查找到对应的主键值,则根据该目标缓存索引查找到的主键值构建单向关联对,得到主键对列表。
在其中一个实施例中,根据连接方式和各目标缓存索引对应的查询关键字的索引字段值,确定索引字段值集合,包括:
当连接方式为左连接时,确定目标缓存索引中的左表;
将左表对应的查询关键字的索引字段值,确定索引字段值集合。
在其中一个实施例中,根据连接方式和各目标缓存索引对应的查询关键字的索引字段值,确定索引字段值集合,包括:
当连接方式为右连接时,确定目标缓存索引中的右表;
将右表对应的查询关键字的索引字段值,确定索引字段值集合。
在其中一个实施例中,根据连接方式和各目标缓存索引对应的查询关键字的索引字段值,确定索引字段值集合,包括:
当连接方式为内连接时,将目标缓存索引对应的查询关键字的索引字段值的交集,确定为索引字段值集合。
在其中一个实施例中,根据连接方式和各目标缓存索引对应的查询关键字的索引字段值,确定索引字段值集合,包括:
当连接方式为外连接时,将目标缓存索引对应的查询关键字的索引字段值的并集,确定为索引字段值集合。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取查询请求,查询请求包括查询字段和查询关键字;
根据查询字段在多个缓存索引中匹配对应的目标缓存索引;其中,缓存索引为倒排索引,记录了索引字段与主键的映射关系;索引字段包括缓存的非主键字段;
根据查询关键字在目标缓存索引的索引字段范围中查询,确定包括查询关键字的索引字段值集合;索引字段范围用于存储各缓存索引包括的索引字段值;
根据索引字段值集合在目标缓存索引中查找对应的主键值集合;
根据主键值集合在缓存中查找得到目标数据。
在其中一个实施例中,若查询字段为至少两个,根据查询关键字在目标缓存索引的索引字段范围中查询,确定包括查询关键字的索引字段值集合,包括:
获取至少两个查询字段对应的目标缓存索引的连接方式;
根据查询关键字在对应的目标缓存索引的索引字段范围中查询,获取各目标缓存索引对应的查询关键字的索引字段值;
根据连接方式和各目标缓存索引对应的查询关键字的索引字段值,确定索引字段值集合。
在其中一个实施例中,主键值集合包括主键对列表;
根据索引字段值集合在目标缓存索引中查找对应的主键值集合,包括:
对索引字段值集合的各索引字段值进行判断;
若根据索引字段值在全部目标缓存索引中均能查找到主键值,则根据各目标缓存索引查找到的主键值构建双向关联对,得到主键对列表。
在其中一个实施例中,该处理器执行计算机程序时还实现以下步骤:
若根据索引字段值在其中一个目标缓存索引中查找到对应的主键值,则根据该目标缓存索引查找到的主键值构建单向关联对,得到主键对列表。
在其中一个实施例中,根据连接方式和各目标缓存索引对应的查询关键字的索引字段值,确定索引字段值集合,包括:
当连接方式为左连接时,确定目标缓存索引中的左表;
将左表对应的查询关键字的索引字段值,确定索引字段值集合。
在其中一个实施例中,根据连接方式和各目标缓存索引对应的查询关键字的索引字段值,确定索引字段值集合,包括:
当连接方式为右连接时,确定目标缓存索引中的右表;
将右表对应的查询关键字的索引字段值,确定索引字段值集合。
在其中一个实施例中,根据连接方式和各目标缓存索引对应的查询关键字的索引字段值,确定索引字段值集合,包括:
当连接方式为内连接时,将目标缓存索引对应的查询关键字的索引字段值的交集,确定为索引字段值集合。
在其中一个实施例中,根据连接方式和各目标缓存索引对应的查询关键字的索引字段值,确定索引字段值集合,包括:
当连接方式为外连接时,将目标缓存索引对应的查询关键字的索引字段值的并集,确定为索引字段值集合。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (19)
1.一种数据查询方法,其特征在于,所述方法包括:
获取查询请求,所述查询请求包括查询字段和查询关键字;
根据所述查询字段在多个缓存索引中匹配对应的目标缓存索引;其中,所述缓存索引为倒排索引,记录了索引字段与主键的映射关系;所述索引字段包括缓存的非主键字段;
根据所述查询关键字在所述目标缓存索引的索引字段范围中查询,确定包括所述查询关键字的索引字段值集合;所述索引字段范围用于存储各所述缓存索引包括的索引字段值;
根据所述索引字段值集合在所述目标缓存索引中查找对应的主键值集合;
根据所述主键值集合在所述缓存中查找得到目标数据。
2.根据权利要求1所述的方法,其特征在于,若所述查询字段为至少两个,所述根据所述查询关键字在所述目标缓存索引的索引字段范围中查询,确定包括所述查询关键字的索引字段值集合,包括:
获取至少两个所述查询字段对应的所述目标缓存索引的连接方式;
根据所述查询关键字在对应的所述目标缓存索引的所述索引字段范围中查询,获取各所述目标缓存索引对应的所述查询关键字的索引字段值;
根据所述连接方式和各所述目标缓存索引对应的所述查询关键字的索引字段值,确定索引字段值集合。
3.根据权利要求2所述的方法,其特征在于,所述主键值集合包括主键对列表;
所述根据所述索引字段值集合在所述目标缓存索引中查找对应的主键值集合,包括:
对所述索引字段值集合的各索引字段值进行判断;
若根据所述索引字段值在全部所述目标缓存索引中均能查找到主键值,则根据所述各所述目标缓存索引查找到的所述主键值构建双向关联对,得到主键对列表。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若根据所述索引字段值在其中一个所述目标缓存索引中查找到对应的主键值,则根据该目标缓存索引查找到的主键值构建单向关联对,得到主键对列表。
5.根据权利要求2所述的方法,其特征在于,所述根据所述连接方式和各所述目标缓存索引对应的所述查询关键字的索引字段值,确定索引字段值集合,包括:
当所述连接方式为左连接时,确定所述目标缓存索引中的左表;
将所述左表对应的所述查询关键字的索引字段值,确定索引字段值集合。
6.根据权利要求2所述的方法,其特征在于,所述根据所述连接方式和各所述目标缓存索引对应的所述查询关键字的索引字段值,确定索引字段值集合,包括:
当所述连接方式为右连接时,确定所述目标缓存索引中的右表;
将所述右表对应的所述查询关键字的索引字段值,确定索引字段值集合。
7.根据权利要求2所述的方法,其特征在于,所述根据所述连接方式和各所述目标缓存索引对应的所述查询关键字的索引字段值,确定索引字段值集合,包括:
当所述连接方式为内连接时,将所述目标缓存索引对应的所述查询关键字的索引字段值的交集,确定为索引字段值集合。
8.根据权利要求2所述的方法,其特征在于,所述根据所述连接方式和各所述目标缓存索引对应的所述查询关键字的索引字段值,确定索引字段值集合,包括:
当连接方式为外连接时,将所述目标缓存索引对应的所述查询关键字的索引字段值的并集,确定为索引字段值集合。
9.一种数据查询装置,其特征在于,所述装置包括:
查询获取模块,用于获取查询请求,所述查询请求包括查询字段和查询关键字;
索引匹配模块,用于根据所述查询字段在多个缓存索引中匹配对应的目标缓存索引;其中,所述缓存索引为倒排索引,记录了索引字段与主键的映射关系;所述索引字段包括缓存的非主键字段;
筛选模块,用于根据所述查询关键字在所述目标缓存索引的索引字段范围中查询,确定包括所述查询关键字的索引字段值集合;所述索引字段范围用于存储各所述缓存索引包括的索引字段值;
主键查找模块,用于根据所述索引字段值集合在所述目标缓存索引中查找对应的主键值集合;
数据查找模块,用于根据所述主键值集合在所述缓存中查找得到目标数据。
10.根据权利要求9所述的装置,其特征在于,若所述查询字段为至少两个,所述筛选模块,用于获取至少两个所述查询字段对应的所述目标缓存索引的连接方式;根据所述查询关键字在对应的所述目标缓存索引的所述索引字段范围中查询,获取各所述目标缓存索引对应的所述查询关键字的索引字段值;根据所述连接方式和各所述目标缓存索引对应的所述查询关键字的索引字段值,确定索引字段值集合。
11.根据权利要求10所述的装置,其特征在于,所述主键值集合包括主键对列表;所述主键查找模块,用于对所述索引字段值集合的各索引字段值进行判断;若根据所述索引字段值在全部所述目标缓存索引中均能查找到主键值,则根据所述各所述目标缓存索引查找到的所述主键值构建双向关联对,得到主键对列表。
12.根据权利要求11所述的装置,其特征在于,所述主键查找模块,还用于若根据所述索引字段值在其中一个所述目标缓存索引中查找到对应的主键值,则根据该目标缓存索引查找到的主键值构建单向关联对,得到主键对列表。
13.根据权利要求10所述的装置,其特征在于,所述筛选模块,用于当所述连接方式为左连接时,确定所述目标缓存索引中的左表;将所述左表对应的所述查询关键字的索引字段值,确定索引字段值集合。
14.根据权利要求10所述的装置,其特征在于,所述筛选模块,用于当所述连接方式为右连接时,确定所述目标缓存索引中的右表;将所述右表对应的所述查询关键字的索引字段值,确定索引字段值集合。
15.根据权利要求10所述的装置,其特征在于,所述筛选模块,用于当所述连接方式为内连接时,将所述目标缓存索引对应的所述查询关键字的索引字段值的交集,确定为索引字段值集合。
16.根据权利要求10所述的装置,其特征在于,所述筛选模块,用于当连接方式为外连接时,将所述目标缓存索引对应的所述查询关键字的索引字段值的并集,确定为索引字段值集合。
17.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的方法的步骤。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。
19.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310212559.XA CN116483829A (zh) | 2023-02-28 | 2023-02-28 | 数据查询方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310212559.XA CN116483829A (zh) | 2023-02-28 | 2023-02-28 | 数据查询方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116483829A true CN116483829A (zh) | 2023-07-25 |
Family
ID=87218438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310212559.XA Pending CN116483829A (zh) | 2023-02-28 | 2023-02-28 | 数据查询方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116483829A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117539962A (zh) * | 2024-01-09 | 2024-02-09 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
-
2023
- 2023-02-28 CN CN202310212559.XA patent/CN116483829A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117539962A (zh) * | 2024-01-09 | 2024-02-09 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN117539962B (zh) * | 2024-01-09 | 2024-05-14 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9026518B2 (en) | System and method for clustering content according to similarity | |
US9361320B1 (en) | Modeling big data | |
US9047333B2 (en) | Dynamic updates to a semantic database using fine-grain locking | |
US7469257B2 (en) | Generating and monitoring a multimedia database | |
US8862566B2 (en) | Systems and methods for intelligent parallel searching | |
CN110659282B (zh) | 数据路由的构建方法、装置、计算机设备和存储介质 | |
US11216516B2 (en) | Method and system for scalable search using microservice and cloud based search with records indexes | |
US20140019454A1 (en) | Systems and Methods for Caching Data Object Identifiers | |
WO2023160137A1 (zh) | 图数据存储方法、系统及计算机设备 | |
US11593339B2 (en) | Systems and methods for determining dataset intersection | |
JP2019520627A (ja) | データベース中にグラフ情報を記憶するためのb木使用 | |
CN116483829A (zh) | 数据查询方法、装置、计算机设备和存储介质 | |
CN114817717A (zh) | 搜索方法、装置、计算机设备和存储介质 | |
US11068459B2 (en) | Computer implemented and computer controlled method, computer program product and platform for arranging data for processing and storage at a data storage engine | |
Khodaei et al. | SKIF-P: a point-based indexing and ranking of web documents for spatial-keyword search | |
EP3652660B1 (en) | Systems and methods for joining datasets | |
CN114297145A (zh) | 一种ipfs节点本地基于关键词搜索文件的方法、介质及系统 | |
EP1967968B1 (en) | Sharing of database objects | |
CN108959381B (zh) | 数据的管理方法及装置和电子设备 | |
CN111008198A (zh) | 业务数据获取方法、装置、存储介质、电子设备 | |
Barioni et al. | Querying complex objects by similarity in SQL. | |
US7809766B2 (en) | Writable shared database objects | |
JP2001067369A (ja) | 情報検索システム、情報検索方法および情報検索用プログラムを記録した記録媒体 | |
Lu et al. | Schema-as-you-go: on probabilistic tagging and querying of wide tables | |
Koloniari et al. | Social search queries in time |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |