CN106528579A - 一种基于分库分表结构数据库的查询方法、装置及系统 - Google Patents

一种基于分库分表结构数据库的查询方法、装置及系统 Download PDF

Info

Publication number
CN106528579A
CN106528579A CN201510587323.XA CN201510587323A CN106528579A CN 106528579 A CN106528579 A CN 106528579A CN 201510587323 A CN201510587323 A CN 201510587323A CN 106528579 A CN106528579 A CN 106528579A
Authority
CN
China
Prior art keywords
storehouse
point
database
record
data
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
CN201510587323.XA
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201510587323.XA priority Critical patent/CN106528579A/zh
Publication of CN106528579A publication Critical patent/CN106528579A/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/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • 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/2282Tablespace storage structures; Management thereof

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)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及数据库技术领域,特别涉及一种基于分库分表结构数据库的查询方法、装置及系统。其中技术方案公开了一种建立分库分表结构数据图和数据库记录中主键的联系,使得通过某个记录数据列就可以定位到该记录属于哪个数据库,根据查询请求在新设置的查询数据库中相应的记录数据列,从而可以准确的定位到具体分库分表结构的数据库,并通过相应的装置及系统,避免了在所有分库分表结构数据库中进行查询,以提升数据库查询工作的效率。

Description

一种基于分库分表结构数据库的查询方法、装置及系统
技术领域
本申请涉及数据库技术领域,特别涉及一种基于分库分表结构数据库的查询方法、装置及系统。
背景技术
随着信息社会的发展和互联网应用的广泛普及,越来越多的信息被数据化,尤其是伴随着互联网(Internet)技术的发展,数据呈爆炸式增长。作为网络的驱动因素,信息数据正在成为网络的核心,数据的安全、高效存储和管理作为网络发展的基础,日益受到人们的重视,但也正因为数据量的高速增长,海量数据的存储和访问成为了系统设计的瓶颈问题。
在现有技术中出现了分库分表的技术方案可以很好的解决上述问题,将原来的数据库进行横向切分,即分表;同时可能会根据业务将数据库进行纵向切分,即分库。但是现有技术中通常只能通过表的主键查询数据,无法通过其他字段进行查询,对于分库分表结构的数据库来说,需要扫描所有分库和分表来实现模糊查询,这样使得查询数据库的工作效率较低。
发明内容
为了解决现有技术中分库分表结构数据库的查询效率低的问题,本申请提出了一种基于分库分表结构数据库的查询方法、装置及系统,通过设置查询数据库并将记录数据列与分库分表结构数据图进行关联,以提高查询数据库工作的效率。
本申请实施例提供了一种基于分库分表结构数据库的查询方法,包括,
建立记录数据列与分库分表结构数据库相关联的数据库路由规则;
将包括所述记录数据列的部分业务数据写入查询数据库,构成业务记录;
根据数据库查询请求,在所述查询数据库中获得与所述数据库查询请求对应的所述业务记录;
根据所述数据库路由规则找到与所述业务记录中的记录数据列匹配的分库分表结构数据库;
根据所述数据库查询请求,在所述匹配得到的分库分表结构数据库中查找详细业务数据。
根据本申请实施例所述方法的一个进一步的方面,建立记录数据列与分库分表结构数据库相关联的数据库路由规则包括,根据所述记录数据列字符串的特征,建立记录数据列与分库分表结构数据库相关联的数据库路由规则。
根据本申请实施例所述方法的再一个进一步的方面,根据所述记录数据列字符串的特征,建立记录数据列与分库分表结构数据库相关联的数据库路由规则包括,将所述记录数据列字符串中特定位置字符相同的业务数据存储入同一分库分表结构数据库;或者,将所述记录数据列字符串进行计算,将计算结果符合预定规则的业务数据存储入相应的分库分表结构数据库。
根据本申请实施例所述方法的另一个进一步的方面,所述部分业务数据包括,业务处理中不会改变的业务数据。
根据本申请实施例所述方法的另一个进一步的方面,所述部分业务数据包括,从业务请求中获得的业务数据,和/或从分库分表结构数据库中获得的业务数据。
本申请实施例还提供了一种基于分库分表结构数据库的查询装置,包括,
数据库路由规则建立单元,用于建立记录数据列与分库分表结构数据库相关联的数据库路由规则;
写入单元,用于将包括所述记录数据列的部分业务数据写入查询数据库,构成业务记录;
第一查询单元,用于根据数据库查询请求,在所述查询数据库中获得与所述数据库查询请求对应的所述业务记录;
匹配单元,用于根据所述数据库路由规则找到与所述业务记录中的记录数据列匹配的分库分表结构数据库;
第二查询单元,用于根据所述数据库查询请求,在所述匹配得到的分库分表结构数据库中查找详细业务数据。
根据本申请实施例所述装置的一个进一步的方面,所述数据库路由规则建立单元根据所述记录数据列字符串的特征,建立记录数据列与分库分表结构数据库相关联的数据库路由规则。
根据本申请实施例所述装置的再一个进一步的方面,所述数据库路由规则建立单元将所述记录数据列字符串中特定位置字符相同的业务数据存储入同一分库分表结构数据库,或者将所述记录数据列字符串进行计算,将计算结果符合预定规则的业务数据存储入相应的分库分表结构数据库。
根据本申请实施例所述装置的另一个进一步的方面,所述写入单元将业务处理中不会改变的业务数据写入查询数据库。
本申请实施例还提供了一种基于分库分表结构数据库的查询系统,包括,
用户终端,应用服务器,分库分表结构数据库,查询终端,如上所述的查询装置,查询数据库,其中,
用户终端与所述应用服务器进行电子交易以产生业务数据,所述应用服务器将业务数据存储到所述分库分表结构数据中;
所述查询装置建立记录数据列与分库分表结构数据库相关联的数据库路由规则,将包括记录数据列的部分业务数据写入查询数据库,构成业务记录,根据由查询终端发出的数据库查询请求,在所述查询数据库中获得与所述数据库查询请求对应的业务记录,根据所述数据库路由规则找到与所述业务记录中的记录数据列匹配的分库分表结构数据库,根据所述数据库查询请求,在所述匹配得到的分库分表结构数据库中查找详细业务数据。
由以上本申请实施例提供的技术方案可见,可以避免在分库分表结构数据库中查询记录时,对所有的分库分表结构数据库进行查询,只针对与查询数据库中检索出的记录主键相匹配的分库分表结构数据库进行查询,得到分库分表结构数据库中记录的详细业务数据,从而提高了对分库分表结构数据库查询的效率。
当然实施本申请的任一产品或者方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1所示为本申请实施例一种基于分库分表结构数据库的查询方法流程图;
图2所示为本申请实施例一种基于分库分表结构数据库的查询装置结构图;
图3所示为本申请实施例一种基于分库分表结构数据库的查询系统结构示意图;
图4所示为本申请实施例一种基于分库分表结构数据库的查询方法具体流程图;
图5a所示为本申请实施例分库分表结构数据库的结构示意图;
图5b所示为本申请实施例查询数据库的结构示意图;
图6所示为本申请实施例一种基于分库分表结构数据库的查询方法另一个具体流程图。
具体实施方式
本申请实施例提供一种基于分库分表结构数据库的查询方法、装置及系统。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
如图1所示为本申请实施例一种基于分库分表结构数据库的查询方法流程图,在该实施例中建立分库分表结构数据图和数据库记录中主键的联系,使得通过记录主键就可以定位到该记录属于哪个数据库,根据查询请求在新设置的查询数据库中检索主键,从而可以准确的定位到具体分库分表结构的数据库,避免了在所有分库分表结构数据库中进行查询,以提升数据库查询工作的效率。
该附图实施例包括,步骤101,建立记录数据列与分库分表结构数据库相关联的数据库路由规则。
步骤102,将包括所述记录数据列的部分业务数据写入查询数据库,构成业务记录。
步骤103,根据数据库查询请求,在所述查询数据库中获得与所述数据库查询请求对应的所述业务记录。
步骤104,根据所述数据库路由规则找到与所述业务记录中的记录数据列匹配的分库分表结构数据库。
步骤105,根据所述数据库查询请求,在所述匹配得到的分库分表结构数据库中查找详细业务数据。
作为本申请的一个实施例,在步骤101中,建立记录数据列与分库分表结构数据库相关联的数据库路由规则包括,根据所述记录数据列字符串的特征,建立记录数据列与分库分表结构数据库相关联的数据库路由规则。
作为本申请的一个实施例,根据所述记录数据列字符串的特征,建立记录数据列与分库分表结构数据库相关联的数据库路由规则包括,将所述记录数据列字符串中特定位置字符相同的记录存储入同一分库分表结构数据库,例如业务数据的某个记录数据列(例如用户ID)字符串中的字符为16进制,该记录数据列字符串最后一个字符可能为1至F中任意一个,可以根据记录数据列字符串最后一个字符匹配到16个分库分表结构数据库中的一个数据库,并根据记录数据列字符串倒数第二位的字符匹配到数据库中具体的某个表,将该业务数据存储到该表中,具体的,将记录数据列字符串最后一个字符为1的业务数据存储入第一个数据库,将记录数据列字符串倒数第二个字符为1的业务数据存储入第一个数据表,将记录数据列字符串倒数第二个字符为2的业务数据存储入第二个数据表,将记录数据列字符串最后一个字符为2的业务数据存储入第二个数据库,将记录数据列字符串倒数第二个字符为1的业务数据存储入第一个数据表,将记录数据列字符串最后一个字符为3的业务数据存储入第三个数据库,以此类推;或者,根据所述记录数据列字符串的特征,生成所述数据库路由规则包括,将所述记录数据列字符串进行计算,例如哈希运算等字符串或者数字运算,将计算结果符合预定规则的业务数据存储入相应的分库分表结构数据库,具体的,每个分库分表结构数据库中的数据库和数据表都具有唯一的标记(或者名称),对记录数据列进行哈希运算,将记录数据列与前述分库分表结构数据库的唯一标记相关,这样就可以将业务数据存储到相应的分库分表结构数据库中。
其中,所述记录数据列可以为电子交易系统为每笔业务生成的订单号,或者用于能够唯一识别每笔业务的编号,或者还可以为用户ID等记录数据列,包括但不限于由数字构成的字符串、由字母构成的字符串或者由数字和字母共同构成的字符串。
作为本申请的一个实施例,在步骤102中,部分业务数据包括,业务处理中不会改变的业务数据,例如用户ID、订单金额、商品名称、订单时间等为业务处理中不会改变的业务数据,如订单状态、物流信息等是可能会改变的业务数据。在本实施例中,由于业务处理中可能改变的业务数据没有存储到查询数据库中,可以避免业务数据更改时对查询数据库的操作,以利于查询效率。
其中,所述查询数据库为一个数据库,即非分库分表结构数据库,这样能够提高数据库查询的效率,从而避免如同分库分表结构数据库面临的查询效率低的问题。
通过上述实施例的方法,可以避免在分库分表结构数据库中查询记录时,对所有的分库分表结构数据库进行查询,只针对与查询数据库中检索出的记录数据列相匹配的分库分表结构数据库进行查询,得到分库分表结构数据库中记录的详细业务数据,从而提高了对分库分表结构数据库查询的效率。
如图2所示为本申请实施例一种基于分库分表结构数据库的查询装置结构图,在本实施例中,可以通过在高性能计算机上实现本申请的装置,也可以在特定的FPGA(可编辑逻辑阵列)等芯片中构建本申请装置中的功能单元或者模块,从而实现本申请的目的。
图2中包括数据库路由规则建立单元201,用于建立记录数据列与分库分表结构数据库相关联的数据库路由规则。
写入单元202,用于将包括所述记录数据列的部分业务数据写入查询数据库,构成业务记录。
第一查询单元203,用于根据数据库查询请求,在所述查询数据库中获得与所述数据库查询请求对应的所述业务记录。
匹配单元204,用于根据所述数据库路由规则找到与所述业务记录中的记录数据列匹配的分库分表结构数据库。
第二查询单元205,用于根据所述数据库查询请求,在所述匹配得到的分库分表结构数据库中查找详细业务数据。
作为本申请的一个实施例,所述数据库路由规则建立单元201根据所述记录数据列字符串的特征,建立记录数据列与分库分表结构数据库相关联的数据库路由规则。
作为本申请的一个实施例,所述数据库路由规则建立单元201将所述记录数据列字符串中特定位置字符相同的业务数据存储入同一分库分表结构数据库,或者将所述记录数据列字符串进行计算,将计算结果符合预定规则的业务数据存储入相应的分库分表结构数据库。
作为本申请的一个实施例,所述写入单元202将业务处理中不会改变的业务数据写入查询数据库。
通过上述实施例的方法,可以避免在分库分表结构数据库中查询记录时,对所有的分库分表结构数据库进行查询,只针对与查询数据库中检索出的记录数据列相匹配的分库分表结构数据库进行查询,得到分库分表结构数据库中的详细业务数据,从而提高了对分库分表结构数据库查询的效率。
如图3所示为本申请实施例一种基于分库分表结构数据库的查询系统结构示意图,其中在本实施例中,在现有的数据库系统中加入了如图2所示查询装置,或者再现有的数据库系统中的某个数据库服务器中包括了实现如图2所示查询装置功能的功能模块,从而在该数据库系统中进行模糊查询时,可以实现高效率的查询工作。
该图3中包括用户终端301,应用服务器302,分库分表结构数据库303,查询终端304,查询装置305,查询数据库306,其中,
用户终端301与所述应用服务器302进行电子交易以产生业务数据,所述应用服务器302将业务数据存储到所述分库分表结构数据303中;
所述查询装置305建立记录数据列与分库分表结构数据库303相关联的数据库路由规则,将包括记录数据列的部分业务数据写入查询数据库306,构成业务记录,根据由查询终端304发出的数据库查询请求,在所述查询数据库306中获得与所述数据库查询请求对应的业务记录,根据所述数据库路由规则找到与所述业务记录中的记录数据列匹配的分库分表结构数据库303,根据所述数据库查询请求,在所述匹配得到的分库分表结构数据库中查找详细业务数据。
作为本申请的一个实施例,所述查询装置305根据所述记录数据列字符串的特征,建立记录数据列与分库分表结构数据库相关联的数据库路由规则。
作为本申请的一个实施例,所述查询装置305将业务处理中不会改变的业务数据写入查询数据库306。
通过上述实施例的方法,可以避免在分库分表结构数据库中查询记录时,对所有的分库分表结构数据库进行查询,只针对与查询数据库中检索出的记录数据列相匹配的分库分表结构数据库进行查询,得到分库分表结构数据库中的详细业务数据,从而提高了对分库分表结构数据库查询的效率。
如图4所示为本申请实施例一种基于分库分表结构数据库的查询方法具体流程图,在本实施例中以电子交易中的购买业务为例进行说明,在本例中有用户终端A、用户终端B和用户终端C向应用服务器发出业务请求。
该图4实施例包括步骤401,在应用服务器上建立记录数据列与分库分表结构数据库相关联的数据库路由规则。
在本步骤中,从记录数据列中选择用户ID与分库分表结构数据库进行关联,分库分表结构数据库包括数据库01、数据库02,其中在数据库01中进一步包括分表01和分表02。数据库路由规则为,将用户ID最后一个字符(在本例中为数字)为1的记录写入数据库01中,将用户ID最后一个字符为2的记录写入数据库02中,将用户ID中倒数第二个字符为1的记录写入分表01中,将倒数第二个字符为2的记录写入分表02中。
在其他实施例中,还可以在分库分表结构数据库中建立上述数据库路由规则。
步骤402,用户终端A、用户终端B和用户终端C向应用服务器发送购买业务请求,由于附图篇幅所限,只以一个用户终端301代表三个用户终端,在该购买业务请求中可能包括用户ID,金额,商品信息,备注等在后续业务处理过程中不会发生改变的业务数据,还包括如物流地址等在后续业务处理过程中可能发生改变的业务数据。
在本实施例中,用户终端A的用户ID为0100011,用户终端B的用户ID为0100021,用户终端C的用户ID为0200012。
以上设定只是为了简洁、清楚的说明本申请的技术方案,并不是对实现过程中用户ID或者分库分表结构数据库命名的限定。
步骤403,应用服务器根据上述购买业务请求生成相应的业务详情信息,将上述购买业务请求和生成的业务详情信息构成的业务数据根据数据库路由规则存储入分库分表结构数据库中,其中,业务详情信息可能包括,交易状态(如已付款、未发货、已发货等),订单详情(如退款信息、放款信息等),物流信息等在后续的业务处理中可能发生改变的业务数据,还可能包括例如用户性别、手机号码等在后续业务处理过程中不会发生改变的业务数据。
在本实施例中的分库分表结构数据库包括数据库01、数据库02,其中在数据库01中进一步包括分表01和分表02,将购买业务请求和生成的业务详情信息存储入分库分表结构数据库中进一步包括,将用户ID为0100011和用户ID为0100021的业务数据存储入数据库01,将用户ID为0200012的业务数据存储入数据库02中,其中用户ID为0100011的业务数据存储入数据库01中的分表01中,用户ID为0100021的业务数据存储入数据库01中的分表02中,如图5a所示为本申请实施例分库分表结构数据库的结构示意图。
步骤404,查询装置将上述三笔包括用户ID在内的部分业务数据存储入查询数据库中,构成业务记录。
在本步骤中,存储入查询数据库中的部分业务数据包括作为记录主键的订单ID,该订单ID可以由交易系统顺序生成,还可以由交易系统根据用户ID生成,例如图5b中的订单ID前三位为用户ID的最后三位,后面四位为处理业务请求的顺序编号,用以唯一的标记一条业务数据记录,还包括用户ID,金额,商品信息,物流地址,交易状态(从应用服务器中)等信息。当然,当所述查询数据库中包括了在后续业务处理中可能发生变化的业务数据时,在用户终端或者应用系统端对这部分业务数据进行修改时,查询数据库中的相应记录也应该被修改。
在本实施例中,查询装置在查询数据库中存储用户终端A的部分业务数据,用户终端B的部分业务数据和用户终端C的部分业务数据,如图5b所示为本申请实施例查询数据库的结构示意图。
步骤405,通过查询终端输入查询请求到查询装置。
在本实施例中,查询终端可以集成于用户终端A,用户终端B或者用户终端C,查询请求例如为查询所有购买计算机的用户的详细信息,则查询终端向查询装置发送该查询请求。
步骤406,查询装置接收该查询请求后,在查询数据库中进行查询。
在本实施例中,在查询数据库中查询所有购买计算机用户的详细信息,由于前述在查询数据库中至少包括了订单ID,用户ID,并且还包括了商品信息(即可能包括计算机),因此在查询数据库中查找出商品信息为计算机的所有用户ID,如图5b所示,可以找出用户ID为0100011和用户ID为0100021的用户购买了计算机,即在查询数据库的业务记录中得到了用户ID的多条业务记录,其中包括了用户ID。
步骤407,查询装置根据所述用户ID和前述的数据库路由规则,匹配得到相应的分库分表结构数据库。
在本步骤中,用户ID为0100011和用户ID为0100021两条业务记录,根据如步骤401中的数据库路由规则可以匹配得到数据库01,其中用户ID为0100011可以进一步匹配到数据库01中的分表01,用户ID为0100021可以进一步匹配到数据库01中的分表02。
步骤408,查询装置在分库分表结构数据库的数据库01分表01中查找用户ID为0100011的详细业务数据,在数据库01的分表02中查找用户ID为0100021的详细业务数据,得到每个业务记录的详细信息,即该业务记录中的所有记录数据。
步骤409,查询装置将查询结果反馈给查询终端。
如图6所示为本申请实施例一种基于分库分表结构数据库的查询方法另一个具体流程图,在本实施例中以电子交易中的购买业务为例进行说明,在本例中有用户终端A、用户终端B和用户终端C向应用服务器发出业务请求。
该图6实施例包括步骤601,在应用服务器上建立记录数据列与分库分表结构数据库相关联的数据库路由规则。
在本步骤中,选择记录数据列中的订单编号与分库分表结构数据库相关联,分库分表结构数据库包括数据库01、数据库02,其中在数据库01中进一步包括分表01和分表02。数据库路由规则为,将订单编号最后一个字符(在本例中为数字)为1的记录写入数据库01中,将订单编号最后一个字符为2的记录写入数据库02中,将订单编号中倒数第二个字符为1的记录写入分表01中,将倒数第二个字符为2的记录写入分表02中。
作为本申请的其它实施例,还可以采用其它的数据库路由规则,在此不做限制,以上只是为了简单、清楚的说明本申请的技术方案所做的举例,不应理解为对本申请技术方案的限制。
在其他实施例中,还可以在分库分表结构数据库中建立上述数据库路由规则。
步骤602,用户终端A、用户终端B和用户终端C向应用服务器发送购买业务请求,在该购买业务请求中可能包括用户ID,金额,商品信息,备注等在后续业务处理过程中不会发生改变的业务数据,还包括如物流地址等在后续业务处理过程中可能发生改变的业务数据。
在本实施例中,用户终端A的用户ID为0100011,用户终端B的用户ID为0100021,用户终端C的用户ID为0200012,应用服务器根据用户终端的购买业务请求对每笔业务生成订单编号,在本例中例如可以根据物流地址生成订单编号,例如本次购买业务请求中物流地址位于北京则用户终端A的订单编号为011,物流地址位于北京的用户终端B的订单编号为021,物流地址位于上海的用户终端C的订单编号为012。
以上设定只是为了简洁、清楚的说明本申请的技术方案,并不是对实现过程中订单编号或者分库分表结构数据库命名的限定。
步骤603,应用服务器根据上述购买业务请求生成相应的业务详情信息,将上述购买业务请求和生成的业务详情信息构成的业务数据存储入分库分表结构数据库中,其中,业务详情信息可能包括,交易状态(如已付款、未发货、已发货等),订单详情(如退款信息、放款信息等),物流信息等在后续的业务处理中可能发生改变的业务数据,还可能包括例如用户性别、手机号码等在后续业务处理过程中不会发生改变的业务数据。
在本实施例中的分库分表结构数据库包括数据库01、数据库02,其中在数据库01中进一步包括分表01和分表02,将购买业务请求和生成的业务详情信息存储入分库分表结构数据库中进一步包括,将订单编号为011和订单编号为021的业务数据存储入数据库01,将订单编号为012的业务数据存储入数据库02中,其中订单编号为011的业务数据存储入数据库01中的分表01中,订单编号为021的业务数据存储入数据库01中的分表02中。
步骤604,查询装置将上述三笔包括订单编号在内的部分业务数据存储入查询数据库中,构成业务记录。
在本步骤中,存储入查询数据库中的部分业务数据至少包括作为记录主键的订单编号,还可以包括金额,商品信息等后续业务处理中不会改变的信息。
在本实施例中,查询装置在查询数据库中存储订单编号为011的部分业务数据,订单编号为021的部分业务数据和订单编号为012的部分业务数据。在本实施例中,部分业务数据除了包括订单编号以及购买业务请求中包括的不可变的业务数据外,还包括分库分表结构数据库中的不可变的业务数据,例如性别、手机号码等信息。通过在查询数据库中存储不可变的业务数据,避免了在查询数据库中修改记录造成的数据库操作性能下降等问题。这个步骤需要查询装置与分库分表结构数据库的数据通信,才能够将分库分表结构数据库中的不可变业务数据导入到查询数据库中,数据通信的实现可以采用现有技术中的手段实现,在此不再赘述。
步骤605,通过查询终端输入查询请求到查询装置。
在本实施例中,查询终端可以集成于应用服务器或者其他相关的系统端服务器,查询请求例如为查询所有购买计算机的女性用户的物流状态,则查询终端向查询装置发送该查询请求。
步骤606,查询装置接收该查询请求后,在查询数据库中进行查询。
在本实施例中,在查询数据库中查询所有购买计算机的女性用户的物流状态,由于前述在查询数据库中至少包括了订单编号,并且还包括了商品信息(即可能包括计算机)和性别,因此在查询数据库中查找出商品信息为计算机、用户性别为女性的所有订单编号,在本实施例中订单编号为011和021的业务记录符合查询条件。
步骤607,查询装置根据所述订单编号和前述的数据库路由规则,匹配得到相应的分库分表结构数据库。
在本步骤中,由前述步骤得到的订单编号为011和订单编号为021两个记录主键,根据如步骤601中的数据库路由规则可以匹配得到数据库01,其中订单编号为011可以进一步匹配到数据库01中的分表01,订单编号为021可以进一步匹配到数据库01中的分表02。
步骤608,查询装置在分库分表结构数据库的数据库01分表01中查找订单编号为011的业务数据,在数据库01的分表02中查找订单编号为021的业务数据,得到每个业务数据的物流状态。
步骤609,查询装置将查询结果反馈给查询终端。
通过上述本申请实施例中的方法、装置及系统,可以避免在分库分表结构数据库中查询记录时,对所有的分库分表结构数据库进行查询,只针对与查询数据库中检索出的记录数据列相匹配的分库分表结构数据库进行查询,得到分库分表结构数据库中记录的详细业务数据,从而提高了对分库分表结构数据库查询的效率。
对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片2。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell UniversityProgramming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、AtmelAT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。

Claims (10)

1.一种基于分库分表结构数据库的查询方法,其特征在于包括,
建立记录数据列与分库分表结构数据库相关联的数据库路由规则;
将包括所述记录数据列的部分业务数据写入查询数据库,构成业务记录;
根据数据库查询请求,在所述查询数据库中获得与所述数据库查询请求对应的所述业务记录;
根据所述数据库路由规则找到与所述业务记录中的记录数据列匹配的分库分表结构数据库;
根据所述数据库查询请求,在所述匹配得到的分库分表结构数据库中查找详细业务数据。
2.根据权利要求1所述的方法,其特征在于,建立记录数据列与分库分表结构数据库相关联的数据库路由规则包括,根据所述记录数据列字符串的特征,建立记录数据列与分库分表结构数据库相关联的数据库路由规则。
3.根据权利要求2所述的方法,其特征在于,根据所述记录数据列字符串的特征,建立记录数据列与分库分表结构数据库相关联的数据库路由规则包括,将所述记录数据列字符串中特定位置字符相同的业务数据存储入同一分库分表结构数据库;或者,将所述记录数据列字符串进行计算,将计算结果符合预定规则的业务数据存储入相应的分库分表结构数据库。
4.根据权利要求1所述的方法,其特征在于,所述部分业务数据包括,业务处理中不会改变的业务数据。
5.根据权利要求4所述的方法,其特征在于,所述部分业务数据包括,从业务请求中获得的业务数据,和/或从分库分表结构数据库中获得的业务数据。
6.一种基于分库分表结构数据库的查询装置,其特征在于包括,
数据库路由规则建立单元,用于建立记录数据列与分库分表结构数据库相关联的数据库路由规则;
写入单元,用于将包括所述记录数据列的部分业务数据写入查询数据库,构成业务记录;
第一查询单元,用于根据数据库查询请求,在所述查询数据库中获得与所述数据库查询请求对应的所述业务记录;
匹配单元,用于根据所述数据库路由规则找到与所述业务记录中的记录数据列匹配的分库分表结构数据库;
第二查询单元,用于根据所述数据库查询请求,在所述匹配得到的分库分表结构数据库中查找详细业务数据。
7.根据权利要求6所述的装置,其特征在于,所述数据库路由规则建立单元根据所述记录数据列字符串的特征,建立记录数据列与分库分表结构数据库相关联的数据库路由规则。
8.根据权利要求7所述的装置,其特征在于,所述数据库路由规则建立单元将所述记录数据列字符串中特定位置字符相同的业务数据存储入同一分库分表结构数据库,或者将所述记录数据列字符串进行计算,将计算结果符合预定规则的业务数据存储入相应的分库分表结构数据库。
9.根据权利要求6所述的装置,其特征在于,所述写入单元将业务处理中不会改变的业务数据写入查询数据库。
10.一种基于分库分表结构数据库的查询系统,其特征在于包括,
用户终端,应用服务器,分库分表结构数据库,查询终端,如权利要求6-9任意一项所述的查询装置,查询数据库,其中,
用户终端与所述应用服务器进行电子交易以产生业务数据,所述应用服务器将业务数据存储到所述分库分表结构数据中;
所述查询装置建立记录数据列与分库分表结构数据库相关联的数据库路由规则,将包括记录数据列的部分业务数据写入查询数据库,构成业务记录,根据由查询终端发出的数据库查询请求,在所述查询数据库中获得与所述数据库查询请求对应的业务记录,根据所述数据库路由规则找到与所述业务记录中的记录数据列匹配的分库分表结构数据库,根据所述数据库查询请求,在所述匹配得到的分库分表结构数据库中查找详细业务数据。
CN201510587323.XA 2015-09-15 2015-09-15 一种基于分库分表结构数据库的查询方法、装置及系统 Pending CN106528579A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510587323.XA CN106528579A (zh) 2015-09-15 2015-09-15 一种基于分库分表结构数据库的查询方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510587323.XA CN106528579A (zh) 2015-09-15 2015-09-15 一种基于分库分表结构数据库的查询方法、装置及系统

Publications (1)

Publication Number Publication Date
CN106528579A true CN106528579A (zh) 2017-03-22

Family

ID=58348652

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510587323.XA Pending CN106528579A (zh) 2015-09-15 2015-09-15 一种基于分库分表结构数据库的查询方法、装置及系统

Country Status (1)

Country Link
CN (1) CN106528579A (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107229688A (zh) * 2017-05-12 2017-10-03 上海前隆金融信息服务有限公司 一种数据库水平分库分表方法及系统、服务器
CN107341105A (zh) * 2017-06-20 2017-11-10 北京金山安全软件有限公司 信息处理方法、终端及服务器
CN107402950A (zh) * 2017-04-28 2017-11-28 阿里巴巴集团控股有限公司 基于分库分表的文件处理方法和装置
CN107506497A (zh) * 2017-09-28 2017-12-22 郑州云海信息技术有限公司 一种数据库数据访问方法及装置
CN108108436A (zh) * 2017-12-20 2018-06-01 东软集团股份有限公司 数据存储方法、装置、存储介质及电子设备
CN108875003A (zh) * 2018-06-14 2018-11-23 广州谱道网络科技有限公司 一种数据定位方法及装置
CN109783543A (zh) * 2019-01-14 2019-05-21 广州虎牙信息科技有限公司 数据查询方法、装置、设备和存储介质
CN110069484A (zh) * 2017-08-29 2019-07-30 苏宁云商集团股份有限公司 一种数据库的分库方法及装置
CN110109919A (zh) * 2018-02-02 2019-08-09 北京京东尚科信息技术有限公司 确定逻辑信息的方法和装置
WO2020029154A1 (zh) * 2018-08-09 2020-02-13 北京大米科技有限公司 一种数据查询的方法、装置及电子设备
CN111061759A (zh) * 2018-10-17 2020-04-24 联易软件有限公司 数据查询方法及装置
CN111506654A (zh) * 2020-04-17 2020-08-07 北京思特奇信息技术股份有限公司 用于数据路由的数据分区方法
CN111625561A (zh) * 2019-02-28 2020-09-04 华为技术有限公司 一种数据查询方法及装置
CN112162981A (zh) * 2020-09-08 2021-01-01 杭州涂鸦信息技术有限公司 一种自适应的路由分库分表方法及系统
CN112395293A (zh) * 2020-11-27 2021-02-23 浙江诺诺网络科技有限公司 分库分表方法、分库分表装置、分库分表设备及存储介质
CN113032439A (zh) * 2021-05-20 2021-06-25 广州宸祺出行科技有限公司 一种分库分表结构数据库的查询方法、装置及系统
CN113111413A (zh) * 2021-03-30 2021-07-13 毕埃慕(上海)建筑数据技术股份有限公司 一种bim模型属性半结构化轻量设计方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999526A (zh) * 2011-09-16 2013-03-27 阿里巴巴集团控股有限公司 一种数据库关系表的拆分、查询方法及系统
CN103020204A (zh) * 2012-12-05 2013-04-03 北京普泽天玑数据技术有限公司 一种对分布式顺序表进行多维区间查询的方法及其系统
CN103365881A (zh) * 2012-03-30 2013-10-23 腾讯科技(深圳)有限公司 基于数据特征的数据存取方法及系统
CN103714097A (zh) * 2012-10-09 2014-04-09 阿里巴巴集团控股有限公司 一种访问数据库的方法和装置
CN104133867A (zh) * 2014-07-18 2014-11-05 中国科学院计算技术研究所 分布式顺序表片内二级索引方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999526A (zh) * 2011-09-16 2013-03-27 阿里巴巴集团控股有限公司 一种数据库关系表的拆分、查询方法及系统
CN103365881A (zh) * 2012-03-30 2013-10-23 腾讯科技(深圳)有限公司 基于数据特征的数据存取方法及系统
CN103714097A (zh) * 2012-10-09 2014-04-09 阿里巴巴集团控股有限公司 一种访问数据库的方法和装置
CN103020204A (zh) * 2012-12-05 2013-04-03 北京普泽天玑数据技术有限公司 一种对分布式顺序表进行多维区间查询的方法及其系统
CN104133867A (zh) * 2014-07-18 2014-11-05 中国科学院计算技术研究所 分布式顺序表片内二级索引方法及系统

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107402950A (zh) * 2017-04-28 2017-11-28 阿里巴巴集团控股有限公司 基于分库分表的文件处理方法和装置
CN107402950B (zh) * 2017-04-28 2020-05-29 阿里巴巴集团控股有限公司 基于分库分表的文件处理方法和装置
CN107229688A (zh) * 2017-05-12 2017-10-03 上海前隆金融信息服务有限公司 一种数据库水平分库分表方法及系统、服务器
CN107341105A (zh) * 2017-06-20 2017-11-10 北京金山安全软件有限公司 信息处理方法、终端及服务器
CN110069484A (zh) * 2017-08-29 2019-07-30 苏宁云商集团股份有限公司 一种数据库的分库方法及装置
CN107506497A (zh) * 2017-09-28 2017-12-22 郑州云海信息技术有限公司 一种数据库数据访问方法及装置
CN108108436B (zh) * 2017-12-20 2020-07-31 东软集团股份有限公司 数据存储方法、装置、存储介质及电子设备
CN108108436A (zh) * 2017-12-20 2018-06-01 东软集团股份有限公司 数据存储方法、装置、存储介质及电子设备
CN110109919B (zh) * 2018-02-02 2024-01-12 北京京东尚科信息技术有限公司 确定逻辑信息的方法和装置
CN110109919A (zh) * 2018-02-02 2019-08-09 北京京东尚科信息技术有限公司 确定逻辑信息的方法和装置
CN108875003A (zh) * 2018-06-14 2018-11-23 广州谱道网络科技有限公司 一种数据定位方法及装置
WO2020029154A1 (zh) * 2018-08-09 2020-02-13 北京大米科技有限公司 一种数据查询的方法、装置及电子设备
CN111061759A (zh) * 2018-10-17 2020-04-24 联易软件有限公司 数据查询方法及装置
CN109783543B (zh) * 2019-01-14 2021-07-02 广州虎牙信息科技有限公司 数据查询方法、装置、设备和存储介质
CN109783543A (zh) * 2019-01-14 2019-05-21 广州虎牙信息科技有限公司 数据查询方法、装置、设备和存储介质
CN111625561A (zh) * 2019-02-28 2020-09-04 华为技术有限公司 一种数据查询方法及装置
CN111506654A (zh) * 2020-04-17 2020-08-07 北京思特奇信息技术股份有限公司 用于数据路由的数据分区方法
CN112162981A (zh) * 2020-09-08 2021-01-01 杭州涂鸦信息技术有限公司 一种自适应的路由分库分表方法及系统
CN112395293A (zh) * 2020-11-27 2021-02-23 浙江诺诺网络科技有限公司 分库分表方法、分库分表装置、分库分表设备及存储介质
CN112395293B (zh) * 2020-11-27 2024-03-01 浙江诺诺网络科技有限公司 分库分表方法、分库分表装置、分库分表设备及存储介质
CN113111413A (zh) * 2021-03-30 2021-07-13 毕埃慕(上海)建筑数据技术股份有限公司 一种bim模型属性半结构化轻量设计方法
CN113111413B (zh) * 2021-03-30 2022-09-06 毕埃慕(上海)建筑数据技术股份有限公司 一种bim模型属性半结构化轻量设计方法
CN113032439A (zh) * 2021-05-20 2021-06-25 广州宸祺出行科技有限公司 一种分库分表结构数据库的查询方法、装置及系统

Similar Documents

Publication Publication Date Title
CN106528579A (zh) 一种基于分库分表结构数据库的查询方法、装置及系统
US8898194B2 (en) Searching and displaying data objects residing in data management systems
CN102023989B (zh) 一种信息检索方法及其系统
CN101036141B (zh) 具有持久性、用户可访问的位图值的数据库管理系统
US11386081B2 (en) System and method for facilitating efficient indexing in a database system
US9870382B2 (en) Data encoding and corresponding data structure
US8924373B2 (en) Query plans with parameter markers in place of object identifiers
CN107229718A (zh) 处理报表数据的方法和装置
CN107436911A (zh) 模糊查询方法、装置及查询系统
WO2018097846A1 (en) Edge store designs for graph databases
JP6670097B2 (ja) 関係型データベース表の列横断的検索
CN102541631A (zh) 以多线程不同驱动源执行计划处理查询的方法和系统
US11853279B2 (en) Data storage using vectors of vectors
JP2020123320A (ja) インデックスを管理するための方法、装置、設備及び記憶媒体
CN105989015A (zh) 一种数据库扩容方法和装置以及访问数据库的方法和装置
JP2001331509A (ja) リレーショナルデータベース処理装置、リレーショナルデータベースの処理方法及びリレーショナルデータベースの処理プログラムを記録したコンピュータ読み取り可能な記録媒体
US10452693B2 (en) Reordering of enriched inverted indices
CN110457398A (zh) 区块数据存储方法及装置
WO2017065891A1 (en) Automated join detection
US11762829B2 (en) Scalable fine grained access control within a search engine
TW201810086A (zh) 資訊處理系統及方法與資訊處理程式
US20190163810A1 (en) Search User Interface
US11093509B2 (en) Data processing system for curating search result facets
US9659059B2 (en) Matching large sets of words
CN107562533A (zh) 一种数据加载处理方法及装置

Legal Events

Date Code Title Description
C06 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: 20170322

RJ01 Rejection of invention patent application after publication