CN108427748A - 分布式数据库二级索引查询方法、装置以及服务器 - Google Patents

分布式数据库二级索引查询方法、装置以及服务器 Download PDF

Info

Publication number
CN108427748A
CN108427748A CN201810201425.7A CN201810201425A CN108427748A CN 108427748 A CN108427748 A CN 108427748A CN 201810201425 A CN201810201425 A CN 201810201425A CN 108427748 A CN108427748 A CN 108427748A
Authority
CN
China
Prior art keywords
secondary index
value
index field
level
inquiry request
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
Application number
CN201810201425.7A
Other languages
English (en)
Inventor
赵鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201810201425.7A priority Critical patent/CN108427748A/zh
Publication of CN108427748A publication Critical patent/CN108427748A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种分布式数据库二级索引查询方法、装置、服务器以及存储介质,所述方法包括接收终端发送的二级索引查询请求;根据所述二级索引查询请求中包含的二级索引字段值以及预先存储的二级索引字段值与一级索引字段值的对应关系,得到所述二级索引查询请求对应的目标一级索引字段值;将所述二级索引查询请求发送到所述目标一级索引字段值所对应的目标分区中;接收所述目标分区反馈的查询结果,并将所述查询结果反馈给终端。使用本发明提供的分布式数据库二级索引查询方法,只需在对应的分区进行查询即可得到结果,不需要将查询请求发送给各个分区再将查询结果汇总,降低了二级索引查询的复杂度,提高了效率。

Description

分布式数据库二级索引查询方法、装置以及服务器
技术领域
本发明涉及数据管理技术领域,特别是涉及一种分布式数据库二级索引查询方法、装置、服务器以及存储介质。
背景技术
分布式数据库通常使用分区存储的方式,每一个分区包含数据库的一部分,称为一个分区(shard)。进行分区的依据为分片键值(sharding key),例如,某个分布式数据库存储有学生信息,并将学生信息根据班级进行分区存储,那么这个数据库的sharding key即为班级。通常,也称这个sharding key为该分布式数据库的一级索引字段。同时可以用一级索引字段值来表示具体的分区。
现有技术中,当数据库需要根据二级索引字段查询数据时,需要将该查询请求发送给每一个分区。例如,对于上述例子,当需要用学号对学生信息进行查询时,此次查询属于根据二级索引字段进行查询,其中学号即为此次查询的二级索引字段,学号的具体值称为此次查询的二级索引字段值。为了实现此次查询,需要将这个查询请求发送给每一个根据一级索引字段进行划分的分区,然后将查询的结果汇总才能找到具体的学生信息。这种查询方式较为复杂,效率较低。
发明内容
本发明实施例的目的在于提供一种分布式数据库二级索引查询方法、装置、服务器以及存储介质,以实现降低分布式数据库进行二级索引查询的复杂度,提高查询效率。
为达到上述目的,本发明实施例公开了一种分布式数据库二级索引查询方法,应用于数据库服务器,所述方法包括:
接收终端发送的二级索引查询请求;所述二级索引查询请求中包含此次查询的二级索引字段值;
根据所述二级索引查询请求中包含的二级索引字段值以及预先存储的二级索引字段值与一级索引字段值的对应关系,得到所述二级索引查询请求对应的目标一级索引字段值;
将所述二级索引查询请求发送到所述目标一级索引字段值所对应的目标分区中;
接收所述目标分区反馈的查询结果,并将所述查询结果反馈给终端。
可选的,预先存储所述二级索引字段值与一级索引字段值的对应关系的步骤,包括:
获取每一条包含预设的二级索引字段的操作日志;所述的预设的二级索引字段的值一一对应于整个数据库中的样本;
通过解析所述每一条包含预设的二级索引字段的操作日志,获取所述操作日志中包含的二级索引字段值与一级索引字段值的对应关系;
存储所述获取的二级索引字段值与一级索引字段值的对应关系。
可选的,在接收终端发送的二级索引查询请求之后,还包括:
判断所述二级索引查询请求对应的二级索引字段是否为预设的二级索引字段;
若是,则执行根据所述二级索引查询请求中包含的二级索引字段值以及预先存储的二级索引字段值与一级索引字段值的对应关系,得到所述二级索引查询请求对应的目标一级索引字段值的步骤;
若否,则将所有分区作为目标分区,将所述二级索引查询请求发送给每个目标分区。
本发明实施例还提供了一种分布式数据库二级索引构建方法,应用于数据库服务器,所述方法包括:
获取每一条包含预设的二级索引字段的操作日志;所述的预设的二级索引字段的值一一对应于整个数据库中的样本;
通过解析所述每一条包含预设的二级索引字段的操作日志,获取所述操作日志中包含的二级索引字段值与一级索引字段值的对应关系;
存储所获取的二级索引字段值与一级索引字段值的对应关系。
本发明实施例提供了一种分布式数据库二级索引查询装置,应用于数据库服务器,所述装置包括:
二级索引查询请求接收模块:用于接收终端发送的二级索引查询请求;所述二级索引查询请求中包含此次查询的二级索引字段值;
一级索引字段值获取模块:用于根据所述二级索引查询请求中包含的二级索引字段值以及预先存储的二级索引字段值与一级索引字段值的对应关系,得到所述二级索引查询请求对应的目标一级索引字段值;
查询请求转发模块:用于将所述二级索引查询请求发送到所述目标一级索引字段值所对应的目标分区中;
查询结果接收模块:用于接收所述目标分区反馈的查询结果,并将所述查询结果反馈给终端。
可选的,所述装置还包括:
操作日志获得模块:用于获取每一条包含预设的二级索引字段的操作日志;所述的预设的二级索引字段的值一一对应于整个数据库中的样本;
解析模块:用于通过解析所述每一条包含预设的二级索引字段的操作日志,获取所述操作日志中包含的二级索引字段值与一级索引字段值的对应关系;
存储模块:用于将获取的二级索引字段值与一级索引字段值的对应关系记录并存储。
可选的,所述装置还包括:
判断模块:用于在接收终端发送的二级索引查询请求之后,判断所述二级索引查询请求对应的二级索引字段是否为预设的二级索引字段;若是,则触发一级索引字段值获取模块。
本发明实施例提供了一种分布式数据库二级索引构建装置,应用于数据库服务器,所述装置包括:
操作日志获得模块:用于获取每一条包含预设的二级索引字段的操作日志;所述的预设的二级索引字段的值一一对应于整个数据库中的样本;
解析模块:用于通过解析所述每一条包含预设的二级索引字段的操作日志,获取所述操作日志中包含的二级索引字段值与一级索引字段值的对应关系;
存储模块:用于将获取的二级索引字段值与一级索引字段值的对应关系记录并存储。
本发明实施例提供了一种服务器,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口、所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,
本发明实施例提供了一种一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述任一方法步骤。
可见,使用本发明实施例提供的分布式数据库二级索引查询方法、装置、服务器以及存储介质,在根据二级索引字段值进行查询时,能够根据预先存储的二级索引字段值与一级索引字段值的对应关系,得到一级索引字段值,由于一个一级索引字段值对应一个分区,因此只需在对应的分区内进行查询即可得到结果。相比于现有技术中,将查询请求发送给各个分区再将查询结果汇总的方式,降低了二级索引查询的复杂度,提高了效率。
当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的分布式数据库二级索引查询方法的一种流程图;
图2为本发明实施例提供的另一种分布式数据库二级索引查询方法的一种流程图;
图3为本发明实施例提供的分布式数据库二级索引构建方法的一种流程图;
图4为本发明实施例提供的分布式数据库二级索引查询装置的一种结构示意图;
图5为本发明实施例提供的分布式数据库二级索引构建装置的一种结构示意图;
图6为本发明实施例提供的服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
为了解决现有技术中存在的问题,本发明实施例公开了一种分布式数据库二级索引查询方法、装置、服务器及存储介质,能够降低分布式数据库进行二级索引查询的复杂度,提高查询效率。
首先,对本发明实施例提供的分布式数据库二级索引查询方法进行说明,参见图1,图1为本发明实施例提供的分布式数据库二级索引查询方法的一种流程图。所述方法应用于数据库服务器,包括以下步骤:
步骤S101:接收终端发送的二级索引查询请求;所述二级索引查询请求中包含此次查询的二级索引字段值;
首先,对一级索引和二级索引的区分进行举例说明:例如,对于一个存储有学生信息的分布式数据库,是按照班级进行分区的,那么使用“班级”进行索引查询即为一级索引查询,使用其他索引进行查询均为二级索引查询。
在本发明实施例中,当用户要在分布式数据库中进行二级索引查询时,需要在用户所使用的终端输入一个二级索引字段值,随后终端会向服务器发送二级索引查询请求,其中包含了此次查询的二级索引字段值。服务器会接收到该二级索引查询请求。
步骤S102:根据所述二级索引查询请求中包含的二级索引字段值以及预先存储的二级索引字段值与一级索引字段值的对应关系,得到所述二级索引查询请求对应的目标一级索引字段值;
服务器接收到二级索引查询请求之后,会根据二级索引查询请求中的二级索引字段值来获得对应的一级索引字段值。
具体的,服务器预先存储有二级索引字段值与一级索引字段值的对应关系,当然,由于具体实施过程中,上述对应关系可能会特别多,因此存储对应关系的也可能是另外一个数据库,本发明对此不做限定。
服务器会将上述二级索引字段值输入到预先存储的二级索引字段值与一级索引字段值的对应关系,能够得到上述二级索引字段值对应的一个一级索引字段值,由于一级索引字段是与分区相对应的,因此能够确认出所要查询数据对应的分区。
例如,对于一个存储有学生信息的分布式数据库,是按照班级进行分区的,那么,对于使用“学号”进行学生信息的查询,即为二级索引查询。假设使用“2013210586”这个学号进行查询,将其输入学号值与班级的对应关系中,可以得到上述学号对应的班级,例如10班,则可以确定上述学号对应的学生的信息存储在10班对应的分区中。
步骤S103:将所述二级索引查询请求发送到所述目标一级索引字段值所对应的目标分区中;
在步骤S102中,服务器获取到所述二级索引查询请求对应的目标一级索引字段值,进而确定出目标分区。因此,上述要查询的数据就存在目标分区中,服务器只需要将上述查询请求发送到目标分区进行查询即可。而不必把查询请求发送给每一个目标分区。
在上述例子中,在确定出学号对应的学生的信息存储在10班对应的分区之后,将此次二级索引查询请求输入到10班对应的分区即可。
步骤S104:接收所述目标分区反馈的查询结果,并将所述查询结果反馈给终端。
在步骤S103中,服务器将查询请求发送到目标分区进行查询,随后目标分区将查询结果反馈给服务器,服务器再把查询结果反馈给用户使用的终端。
可见,本发明实施例提供的分布式数据库二级索引查询方法,在根据二级索引字段值进行查询时,能够根据预先存储的二级索引字段值与一级索引字段值的对应关系,得到一级索引字段值,由于一个一级索引字段值对应一个分区,因此只需在对应的分区内进行查询即可得到结果。相比于现有技术中,将查询请求发送给各个分区再将查询结果汇总的方式,降低了二级索引查询的复杂度,提高了效率。
在本发明实施例中,预先存储所述二级索引字段值与一级索引字段值的对应关系的步骤,包括:
获取每一条包含预设的二级索引字段的操作日志;预设的二级索引字段的值一一对应于整个数据库中的样本;
通过解析每一条包含预设的二级索引字段的操作日志,获取操作日志中包含的二级索引字段值与一级索引字段值的对应关系;
存储获取的二级索引字段值与一级索引字段值的对应关系。
任何一种数据库中,都有各种各样的操作日志。以常用的MySQL(关系型数据库管理***)为例,其中会包括查询日志、慢查询日志、更新日志等。其中一些操作日志中包含了二级索引字段的信息,对其进行解析,能够得到某个二级索引字段值对应的sharding key信息,也即一级索引字段值。
服务器通过解析包含二级索引字段的每一个操作日志,从而获取每一个操作日志中包含的二级索引字段值与一级索引字段值的对应关系。并将其存储起来。
举例来讲,对于MySQL(关系型数据库管理***),其中一种操作日志为binlog(二进制日志),它记录了数据库中数据的变化。例如,将某个与二级索引字段相关的数据存入某个分区中,这个数据变化会被记录在某个binlog中,将该binlog中的包含的上述二级索引字段的值与分区的值的对应关系提取出来,并存储。
在本发明实施例中,服务器也可以只对包含预设的二级索引字段的操作日志进行解析,其中,预设的二级索引字段的值都一一对应于整个数据库中的样本。
例如,对于一个存储有学生信息的分布式数据库,是按照班级进行分区的,那么对于该数据库,一级索引字段就是“班级”,除了“班级”之外的可以用来检索学生信息的字段均为二级索引字段。例如,对于“学号”这个索引字段,即为二级索引字段,由于每个学号都一一对应于一个学生,因此,服务器可以对包含“学号”的操作日志进行解析,从而获得“学号”的值与“班级”的对应关系。若需要根据某个学号进行二级索引查询时,只需要根据上述对应关系获取该学号对应的班级,即可在班级对应的分区进行查询,而不需要在各个分区都进行查询。
在图1所示的实施例基础上,本发明还提供了另一种分布式数据库二级索引查询方法,参见图2,在步骤S101之后,还包括以下步骤:
步骤S201:判断二级索引查询请求对应的二级索引字段是否为预设的二级索引字段;如果是,则执行步骤S102;如果否,则执行步骤S202。
在本发明实施例中,由于有的二级索引字段值是一一对应于一级索引字段值的,而有的二级索引字段值无法一一对应于一级索引字段值,那些不能一一对应于一级索引字段的二级索引无法使用上述方法进行检索,因此可以预先指定能够使用上述方法进行检索的二级索引字段。
例如,对于“学号”这个索引字段,由于学号可以一一对应与一个学生,因此,“学号”这个索引字段可以作为预设的二级索引字段。
而对于“学生省份”这个索引字段,由于学生省份不能一一对应于一个学生,因此“学生省份”这个索引字段不可以作为预设的二级索引字段,服务器也不需要对包含“学生省份”的操作日志进行解析。
根据上述规则即可得到很多预设的二级索引字段,那么在接收到终端发送的二级索引查询请求之后,还可以先判断二级索引查询请求对应的二级索引字段是否为预设的二级索引字段,若是,则按照图1所示的方法步骤进行。
若判断出二级索引查询请求对应的二级索引字段不是预设的二级索引字段,则该次索引查询无法使用图1所示的方法步骤进行,在这种情况下,可以执行步骤S202:将所有分区作为目标分区,将二级索引查询请求发送给每个目标分区。
随后执行步骤S104即可,此时目标分区是所有的分区,即接收每个分区反馈的查询结果,并将查询结果反馈给终端。
本发明实施例还提供了一种分布式数据库二级索引构建方法,应用于数据库服务器,如图3所示,包括以下步骤:
步骤S301:获取每一条包含预设的二级索引字段的操作日志;所述的预设的二级索引字段的值一一对应于整个数据库中的样本;
步骤S302:通过解析所述每一条包含预设的二级索引字段的操作日志,获取所述操作日志中包含的二级索引字段值与一级索引字段值的对应关系;
步骤S303:存储所获取的二级索引字段值与一级索引字段值的对应关系。
本发明实施例提供的分布式数据库二级索引构建方法,是对包含二级索引字段的操作日志进行解析,提取出二级索引字段值与一级索引字段值的对应关系,并把这些对应关系存储起来。
其中,二级索引字段值一一对应于整个数据库中的样本;对于那些所包含的二级索引字段值不能一一对应于整个数据库中样本的操作日志,可以不必进行解析。
相应的,本发明实施例提供了分布式数据库二级索引查询装置,应用于数据库服务器,可以参见图4,包括以下模块:
二级索引查询请求接收模块401:用于接收终端发送的二级索引查询请求;所述二级索引查询请求中包含此次查询的二级索引字段值;
一级索引字段值获取模块402:用于根据所述二级索引查询请求中包含的二级索引字段值以及预先存储的二级索引字段值与一级索引字段值的对应关系,得到所述二级索引查询请求对应的目标一级索引字段值;
查询请求转发模块403:用于将所述二级索引查询请求发送到所述目标一级索引字段值所对应的目标分区中;
查询结果接收模块404:用于接收所述目标分区反馈的查询结果,并将所述查询结果反馈给终端。
使用本发明实施例提供的分布式数据库二级索引查询装置,在根据二级索引字段值进行查询时,能够根据预先存储的二级索引字段值与一级索引字段值的对应关系,得到一级索引字段值,由于一个一级索引字段值对应一个分区,因此只需在对应的分区内进行查询即可得到结果。相比于现有技术中,将查询请求发送给各个分区再将查询结果汇总的方式,降低了二级索引查询的复杂度,提高了效率。
在本发明的一种实施例中,图4所示的装置还可以包括:
操作日志获得模块:用于获取每一条包含预设的二级索引字段的操作日志;所述的预设的二级索引字段的值一一对应于整个数据库中的样本;
解析模块:用于通过解析所述每一条包含预设的二级索引字段的操作日志,获取所述操作日志中包含的二级索引字段值与一级索引字段值的对应关系;
存储模块:用于将获取的二级索引字段值与一级索引字段值的对应关系记录并存储。
在本发明提供的另一种实施例中,图4所示的装置还可以包括:
判断模块:用于在接收终端发送的二级索引查询请求之后,判断所述二级索引查询请求对应的二级索引字段是否为预设的二级索引字段;若是,则触发一级索引字段值获取模块。
本发明实施例还提供了一种分布式数据库二级索引构建装置,可以参见图5,所述装置包括:
操作日志获得模块501:用于获取每一条包含预设的二级索引字段的操作日志;所述的预设的二级索引字段的值一一对应于整个数据库中的样本;
解析模块502:用于通过解析所述每一条包含预设的二级索引字段的操作日志,获取所述操作日志中包含的二级索引字段值与一级索引字段值的对应关系;
存储模块503:用于将获取的二级索引字段值与一级索引字段值的对应关系记录并存储。
对于装置实施例而言,由于其基本相似与方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种服务器,可以参见图6,包括处理器601、通信接口602、存储器603和通信总线604,其中,所述处理器、所述通信接口、所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现以下方法步骤:
接收终端发送的二级索引查询请求;所述二级索引查询请求中包含此次查询的二级索引字段值;
根据所述二级索引查询请求中包含的二级索引字段值以及预先存储的二级索引字段值与一级索引字段值的对应关系,得到所述二级索引查询请求对应的目标一级索引字段值;
将所述二级索引查询请求发送到所述目标一级索引字段值所对应的目标分区中;
接收所述目标分区反馈的查询结果,并将所述查询结果反馈给终端。
预先存储所述二级索引字段值与一级索引字段值的对应关系的步骤,包括:
获取每一条包含预设的二级索引字段的操作日志;所述的预设的二级索引字段的值一一对应于整个数据库中的样本;
通过解析所述每一条包含预设的二级索引字段的操作日志,获取所述操作日志中包含的二级索引字段值与一级索引字段值的对应关系;
存储所述获取的二级索引字段值与一级索引字段值的对应关系。
在接收终端发送的二级索引查询请求之后,还包括:
判断所述二级索引查询请求对应的二级索引字段是否为预设的二级索引字段;
若是,则执行根据所述二级索引查询请求中包含的二级索引字段值以及预先存储的二级索引字段值与一级索引字段值的对应关系,得到所述二级索引查询请求对应的目标一级索引字段值的步骤;
若否,则将所有分区作为目标分区,将所述二级索引查询请求发送给每个目标分区。
获取每一条包含预设的二级索引字段的操作日志;所述的预设的二级索引字段的值一一对应于整个数据库中的样本;
通过解析所述每一条包含预设的二级索引字段的操作日志,获取所述操作日志中包含的二级索引字段值与一级索引字段值的对应关系;
存储所获取的二级索引字段值与一级索引字段值的对应关系。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现以下方法步骤:
接收终端发送的二级索引查询请求;所述二级索引查询请求中包含此次查询的二级索引字段值;
根据所述二级索引查询请求中包含的二级索引字段值以及预先存储的二级索引字段值与一级索引字段值的对应关系,得到所述二级索引查询请求对应的目标一级索引字段值;
将所述二级索引查询请求发送到所述目标一级索引字段值所对应的目标分区中;
接收所述目标分区反馈的查询结果,并将所述查询结果反馈给终端。
预先存储所述二级索引字段值与一级索引字段值的对应关系的步骤,包括:
获取每一条包含预设的二级索引字段的操作日志;所述的预设的二级索引字段的值一一对应于整个数据库中的样本;
通过解析所述每一条包含预设的二级索引字段的操作日志,获取所述操作日志中包含的二级索引字段值与一级索引字段值的对应关系;
存储所述获取的二级索引字段值与一级索引字段值的对应关系。
在接收终端发送的二级索引查询请求之后,还包括:
判断所述二级索引查询请求对应的二级索引字段是否为预设的二级索引字段;
若是,则执行根据所述二级索引查询请求中包含的二级索引字段值以及预先存储的二级索引字段值与一级索引字段值的对应关系,得到所述二级索引查询请求对应的目标一级索引字段值的步骤;
若否,则将所有分区作为目标分区,将所述二级索引查询请求发送给每个目标分区。
获取每一条包含预设的二级索引字段的操作日志;所述的预设的二级索引字段的值一一对应于整个数据库中的样本;
通过解析所述每一条包含预设的二级索引字段的操作日志,获取所述操作日志中包含的二级索引字段值与一级索引字段值的对应关系;
存储所获取的二级索引字段值与一级索引字段值的对应关系。
上述服务器提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述服务器与其他服务器或设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

Claims (10)

1.一种分布式数据库二级索引查询方法,其特征在于,应用于数据库服务器,所述方法包括:
接收终端发送的二级索引查询请求;所述二级索引查询请求中包含此次查询的二级索引字段值;
根据所述二级索引查询请求中包含的二级索引字段值以及预先存储的二级索引字段值与一级索引字段值的对应关系,得到所述二级索引查询请求对应的目标一级索引字段值;
将所述二级索引查询请求发送到所述目标一级索引字段值所对应的目标分区中;
接收所述目标分区反馈的查询结果,并将所述查询结果反馈给终端。
2.根据权利要求1所述的方法,其特征在于,预先存储所述二级索引字段值与一级索引字段值的对应关系的步骤,包括:
获取每一条包含预设的二级索引字段的操作日志;所述的预设的二级索引字段的值一一对应于整个数据库中的样本;
通过解析所述每一条包含预设的二级索引字段的操作日志,获取所述操作日志中包含的二级索引字段值与一级索引字段值的对应关系;
存储所述获取的二级索引字段值与一级索引字段值的对应关系。
3.根据权利要求2所述的方法,其特征在于,在接收终端发送的二级索引查询请求之后,还包括:
判断所述二级索引查询请求对应的二级索引字段是否为预设的二级索引字段;
如果所述二级索引查询请求对应的二级索引字段为预设的二级索引字段,则执行根据所述二级索引查询请求中包含的二级索引字段值以及预先存储的二级索引字段值与一级索引字段值的对应关系,得到所述二级索引查询请求对应的目标一级索引字段值的步骤;
或者,如果所述二级索引查询请求对应的二级索引字段不是预设的二级索引字段,则将所有分区作为目标分区,将所述二级索引查询请求发送给每个目标分区。
4.一种分布式数据库二级索引构建方法,其特征在于,应用于数据库服务器,所述方法包括:
获取每一条包含预设的二级索引字段的操作日志;所述的预设的二级索引字段的值一一对应于整个数据库中的样本;
通过解析所述每一条包含预设的二级索引字段的操作日志,获取所述操作日志中包含的二级索引字段值与一级索引字段值的对应关系;
存储所获取的二级索引字段值与一级索引字段值的对应关系。
5.一种分布式数据库二级索引查询装置,其特征在于,应用于数据库服务器,所述装置包括:
二级索引查询请求接收模块:用于接收终端发送的二级索引查询请求;所述二级索引查询请求中包含此次查询的二级索引字段值;
一级索引字段值获取模块:用于根据所述二级索引查询请求中包含的二级索引字段值以及预先存储的二级索引字段值与一级索引字段值的对应关系,得到所述二级索引查询请求对应的目标一级索引字段值;
查询请求转发模块:用于将所述二级索引查询请求发送到所述目标一级索引字段值所对应的目标分区中;
查询结果接收模块:用于接收所述目标分区反馈的查询结果,并将所述查询结果反馈给终端。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
操作日志获得模块:用于获取每一条包含预设的二级索引字段的操作日志;所述的预设的二级索引字段的值一一对应于整个数据库中的样本;
解析模块:用于通过解析所述每一条包含预设的二级索引字段的操作日志,获取所述操作日志中包含的二级索引字段值与一级索引字段值的对应关系;
存储模块:用于将获取的二级索引字段值与一级索引字段值的对应关系记录并存储。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
判断模块:用于在接收终端发送的二级索引查询请求之后,判断所述二级索引查询请求对应的二级索引字段是否为预设的二级索引字段;若是,则触发一级索引字段值获取模块。
8.一种分布式数据库二级索引构建装置,其特征在于,应用于数据库服务器,所述装置包括:
操作日志获得模块:用于获取每一条包含预设的二级索引字段的操作日志;所述的预设的二级索引字段的值一一对应于整个数据库中的样本;
解析模块:用于通过解析所述每一条包含预设的二级索引字段的操作日志,获取所述操作日志中包含的二级索引字段值与一级索引字段值的对应关系;
存储模块:用于将获取的二级索引字段值与一级索引字段值的对应关系记录并存储。
9.一种服务器,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口、所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现权利要求1-4任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4任一所述的方法步骤。
CN201810201425.7A 2018-03-12 2018-03-12 分布式数据库二级索引查询方法、装置以及服务器 Pending CN108427748A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810201425.7A CN108427748A (zh) 2018-03-12 2018-03-12 分布式数据库二级索引查询方法、装置以及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810201425.7A CN108427748A (zh) 2018-03-12 2018-03-12 分布式数据库二级索引查询方法、装置以及服务器

Publications (1)

Publication Number Publication Date
CN108427748A true CN108427748A (zh) 2018-08-21

Family

ID=63157840

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810201425.7A Pending CN108427748A (zh) 2018-03-12 2018-03-12 分布式数据库二级索引查询方法、装置以及服务器

Country Status (1)

Country Link
CN (1) CN108427748A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109086456A (zh) * 2018-08-31 2018-12-25 中国联合网络通信集团有限公司 数据索引方法及装置
CN110457363A (zh) * 2019-07-05 2019-11-15 中国平安人寿保险股份有限公司 基于分布式数据库的查询方法、装置及存储介质
CN110647562A (zh) * 2019-09-29 2020-01-03 中国联合网络通信集团有限公司 一种数据查询方法和装置、电子设备、存储介质
CN110750515A (zh) * 2019-09-25 2020-02-04 浙江大华技术股份有限公司 数据库查询方法及处理装置
CN110955665A (zh) * 2019-12-03 2020-04-03 支付宝(杭州)信息技术有限公司 缓存查询方法、装置和电子设备
CN111008200A (zh) * 2019-12-18 2020-04-14 北京数衍科技有限公司 数据查询方法、装置和服务器
CN111008182A (zh) * 2019-11-07 2020-04-14 中国电信集团工会上海市委员会 一种可变字段日志型数据的查询方法及***
CN112835938A (zh) * 2021-02-23 2021-05-25 百度在线网络技术(北京)有限公司 数据处理方法、装置、电子设备和计算机可读存储介质
CN114185934A (zh) * 2021-12-15 2022-03-15 广州辰创科技发展有限公司 一种基于天盾数据库列存储的索引及查询方法及***
CN117539962A (zh) * 2024-01-09 2024-02-09 腾讯科技(深圳)有限公司 数据处理方法、装置、计算机设备和存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101650741A (zh) * 2009-08-27 2010-02-17 中国电信股份有限公司 一种分布式全文检索的索引实时更新的方法和***
CN101727465A (zh) * 2008-11-03 2010-06-09 ***通信集团公司 分布式列存储数据库索引建立、查询方法及装置与***
CN103177116A (zh) * 2013-04-08 2013-06-26 国电南瑞科技股份有限公司 一种基于两级索引的分布式日志处理和查询方法
CN103729386A (zh) * 2012-10-16 2014-04-16 阿里巴巴集团控股有限公司 信息查询***与方法
CN105512200A (zh) * 2015-11-26 2016-04-20 华为技术有限公司 一种分布式数据库处理的方法和设备
CN105787118A (zh) * 2016-03-25 2016-07-20 武汉工程大学 HBase二级索引的设计方法及查询方法
US20160371337A1 (en) * 2015-06-18 2016-12-22 International Business Machines Corp. Partitioned join with dense inner table representation
CN106599040A (zh) * 2016-11-07 2017-04-26 中国科学院软件研究所 一种面向云存储的分层索引方法与检索方法
CN106802891A (zh) * 2015-11-26 2017-06-06 中国电信股份有限公司 分布式数据库非分片字段的查询方法、***和设备
CN107783980A (zh) * 2016-08-24 2018-03-09 阿里巴巴集团控股有限公司 索引数据生成及数据查询方法及装置、存储和查询***

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727465A (zh) * 2008-11-03 2010-06-09 ***通信集团公司 分布式列存储数据库索引建立、查询方法及装置与***
CN101650741A (zh) * 2009-08-27 2010-02-17 中国电信股份有限公司 一种分布式全文检索的索引实时更新的方法和***
CN103729386A (zh) * 2012-10-16 2014-04-16 阿里巴巴集团控股有限公司 信息查询***与方法
CN103177116A (zh) * 2013-04-08 2013-06-26 国电南瑞科技股份有限公司 一种基于两级索引的分布式日志处理和查询方法
US20160371337A1 (en) * 2015-06-18 2016-12-22 International Business Machines Corp. Partitioned join with dense inner table representation
CN105512200A (zh) * 2015-11-26 2016-04-20 华为技术有限公司 一种分布式数据库处理的方法和设备
CN106802891A (zh) * 2015-11-26 2017-06-06 中国电信股份有限公司 分布式数据库非分片字段的查询方法、***和设备
CN105787118A (zh) * 2016-03-25 2016-07-20 武汉工程大学 HBase二级索引的设计方法及查询方法
CN107783980A (zh) * 2016-08-24 2018-03-09 阿里巴巴集团控股有限公司 索引数据生成及数据查询方法及装置、存储和查询***
CN106599040A (zh) * 2016-11-07 2017-04-26 中国科学院软件研究所 一种面向云存储的分层索引方法与检索方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109086456A (zh) * 2018-08-31 2018-12-25 中国联合网络通信集团有限公司 数据索引方法及装置
CN110457363A (zh) * 2019-07-05 2019-11-15 中国平安人寿保险股份有限公司 基于分布式数据库的查询方法、装置及存储介质
CN110457363B (zh) * 2019-07-05 2023-11-21 中国平安人寿保险股份有限公司 基于分布式数据库的查询方法、装置及存储介质
CN110750515A (zh) * 2019-09-25 2020-02-04 浙江大华技术股份有限公司 数据库查询方法及处理装置
CN110647562B (zh) * 2019-09-29 2022-04-26 中国联合网络通信集团有限公司 一种数据查询方法和装置、电子设备、存储介质
CN110647562A (zh) * 2019-09-29 2020-01-03 中国联合网络通信集团有限公司 一种数据查询方法和装置、电子设备、存储介质
CN111008182A (zh) * 2019-11-07 2020-04-14 中国电信集团工会上海市委员会 一种可变字段日志型数据的查询方法及***
CN111008182B (zh) * 2019-11-07 2022-12-13 中国电信集团工会上海市委员会 一种可变字段日志型数据的查询方法及***
CN110955665A (zh) * 2019-12-03 2020-04-03 支付宝(杭州)信息技术有限公司 缓存查询方法、装置和电子设备
CN111008200A (zh) * 2019-12-18 2020-04-14 北京数衍科技有限公司 数据查询方法、装置和服务器
CN111008200B (zh) * 2019-12-18 2024-01-16 北京数衍科技有限公司 数据查询方法、装置和服务器
CN112835938A (zh) * 2021-02-23 2021-05-25 百度在线网络技术(北京)有限公司 数据处理方法、装置、电子设备和计算机可读存储介质
CN114185934A (zh) * 2021-12-15 2022-03-15 广州辰创科技发展有限公司 一种基于天盾数据库列存储的索引及查询方法及***
CN117539962A (zh) * 2024-01-09 2024-02-09 腾讯科技(深圳)有限公司 数据处理方法、装置、计算机设备和存储介质
CN117539962B (zh) * 2024-01-09 2024-05-14 腾讯科技(深圳)有限公司 数据处理方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
CN108427748A (zh) 分布式数据库二级索引查询方法、装置以及服务器
CN107798038B (zh) 数据响应方法及数据响应设备
CN110019080B (zh) 数据访问方法和装置
CN107615277A (zh) 用于查询数据源的***和方法
CN102668457A (zh) 用于社交图数据分析以确定社区内的连接性的***和方法
CN103064933A (zh) 数据查询方法及***
CN103324713B (zh) 多级服务器中的数据处理方法、装置和数据处理***
CN108509501A (zh) 一种查询处理方法、服务器及计算机可读存储介质
CN103475584B (zh) 三态内容寻址存储器(tcam)查询方法和装置
CN106506715A (zh) 域名解析方法及装置
CN111753223A (zh) 一种访问控制的方法和装置
CN105337837A (zh) 一种消息发送方法和设备
US20190180057A1 (en) Fingerprint-based configuration typing and classification
CN110201393A (zh) 一种配置数据的存储方法、装置及电子设备
CN105429879A (zh) 流表项查询方法、设备及***
CN107301215A (zh) 一种搜索结果缓存方法及装置、搜索方法及装置
CN106503008A (zh) 文件存储方法和装置及文件查询方法和装置
CN112419044A (zh) 信用审核的方法、设备、电子装置和存储介质
CN102938121A (zh) 一种商品信息投放方法和设备
CN110334119A (zh) 一种数据关联处理方法、装置、设备及介质
CN110008173A (zh) 一种数据存储的方法及装置
CN104468222A (zh) 上报日志信息的方法、装置及***
CN103226858B (zh) 蓝牙配对信息的处理方法及装置
CN110750559A (zh) 权限信息的处理方法及装置、存储介质、电子装置
US20130290245A1 (en) Database history management method and system thereof

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20180821

RJ01 Rejection of invention patent application after publication