CN111241102B - 数据存储方法、数据检索方法、数据库访问方法及装置 - Google Patents
数据存储方法、数据检索方法、数据库访问方法及装置 Download PDFInfo
- Publication number
- CN111241102B CN111241102B CN202010030466.1A CN202010030466A CN111241102B CN 111241102 B CN111241102 B CN 111241102B CN 202010030466 A CN202010030466 A CN 202010030466A CN 111241102 B CN111241102 B CN 111241102B
- Authority
- CN
- China
- Prior art keywords
- data
- sub
- main
- input
- address
- 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.)
- Active
Links
Images
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/2282—Tablespace storage structures; Management thereof
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (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
本发明提供了一种数据存储方法、数据检索方法、数据库访问方法及装置,其中,该数据存储方法包括:将主表分割为第一数量的多个部分,并将主表的每个部分存储至一个第一存储块;将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块;其中,主表中每个地址包括主数据ID、主数据及子表ID,每个子表ID对应一个子表,每个子表中每个地址包括从数据ID和从数据,所述第一数量和所述第二数量相同或不同。实现基于硬件的数据存储等功能,提高数据检索效率,进而提高计算效率。
Description
技术领域
本发明涉及数据库处理技术领域,尤其涉及一种数据存储方法、数据检索方法、数据库访问方法及装置。
背景技术
随着证监会对程序化的监管要求不断加强,特别是相对于原先只重交易而忽略事前风控的交易系统来说,在现有交易系统中加入事前风控后,势必会大大增加交易时延。利用硬件加速器执行交易系统的一些功能,能够提升计算效率。但是风控检查过程需要先实现记录各标的和对应账户信息才能完成,通常是基于传统数据库实现。那么,若要提升加入事前风控的交易系统的效率,就会面临如何在硬件上存储各标的和对应账户信息类型的数据以及如何从检索该类型数据的问题。
发明内容
本发明提供了一种数据存储方法、数据检索方法、数据库访问方法及装置,以实现基于硬件的数据存储等功能,提高数据检索速度,进而提高计算效率。
为了达到上述目的,本发明采用以下方案实现:
根据本发明实施例的一个方面,提供了一种用于硬件数据库的数据存储方法,包括:将主表分割为第一数量的多个部分,并将主表的每个部分存储至一个第一存储块;将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块;其中,主表中每个地址包括主数据ID、主数据及子表ID,每个子表ID对应一个子表,每个子表中每个地址包括从数据ID和从数据,所述第一数量和所述第二数量相同或不同。
在一些实施例中,主表的各部分的数据量相同;各子表的各部分的数据量相同。
在一些实施例中,将所有子表的同一序位的部分组合在一起,包括:将所有子表的同一序位的部分按对应的子表ID在主表中的地址顺序合并在一起。
在一些实施例中,将主表分割为第一数量的多个部分,并将主表的每个部分存储至一个第一存储块之前,所述方法,还包括:接收主表,并将主表存储在第三存储块中。将主表分割为第一数量的多个部分,并将主表的每个部分存储至一个第一存储块,包括:从所述第三存储块读取主表,以将主表分割为第一数量的多个部分,并将主表的每个部分存储至一个第一存储块。将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块之前,所述方法,还包括:获取各子表,并将每个子表存储在一个第四存储块中。将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块,包括:从各所述第四存储块读取各相应子表,以将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块。
在一些实施例中,获取各子表,并将每个子表存储在一个第四存储块中,包括:接收包括所有子表数据的总表,将所述总表拆分为所述子表,以及将每个子表存储在一个第四存储块中。
在一些实施例中,获取各子表,并将每个子表存储在一个第四存储块中,包括:接收各子表,并将每个子表存储在一个第四存储块中。
在一些实施例中,将主表分割为第一数量的多个部分,并将主表的每个部分存储至一个第一存储块,包括:接收主表,以将主表分割为第一数量的多个部分,并将主表的每个部分存储至一个第一存储块。将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块,包括:获取各子表,以将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块。
在一些实施例中,获取各子表,以将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块,包括:接收包括所有子表数据的总表,以将所述总表拆分为所述子表,将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块。
在一些实施例中,获取各子表,以将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块,包括:接收各子表,以将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块。
根据本发明实施例的另一个方面,提供了一种用于硬件数据库的数据检索方法,包括:获取输入的主数据ID和输入的从数据ID;根据输入的主数据ID并行检索多个第一存储块中的数据,得到位于输入的主数据ID所在地址的主数据及子表ID;输出位于输入的主数据ID所在地址的主数据,以及根据位于输入的主数据ID所在地址的子表ID确定第二存储块中对应位于输入的主数据ID所在地址的子表ID的区域;根据输入的从数据ID并行检索多个所述第二存储块中的对应位于输入的主数据ID所在地址的子表ID的区域中的数据,得到位于输入的从数据ID所在地址的从数据;输出位于输入的从数据ID所在地址的从数据;其中,主表包括第一数量的多个部分,主表的每个部分是存储在一个第一存储块;各子表包括第二数量的多个部分,所有子表的同一序位的部分是组合在一起后存储在一个第二存储块的;主表中每个地址包括主数据ID、主数据及子表ID,每个子表ID对应一个子表,每个子表中每个地址包括从数据ID和从数据,所述第一数量和所述第二数量相同或不同。
在一些实施例中,主表的各部分的数据量相同;各子表的各部分的数据量相同。
在一些实施例中,根据输入的主数据ID并行检索多个所述第一存储块中的数据,得到位于输入的主数据ID所在地址的主数据及子表ID,包括:根据输入的主数据ID并行检索所有所述第一存储块中的数据,得到位于输入的主数据ID所在地址的主数据及子表ID。
在一些实施例中,根据输入的主数据ID并行检索所有所述第一存储块中的数据,得到位于输入的主数据ID所在地址的主数据及子表ID,包括:按地址顺序依次从各所述第一存储块并行读取数据,将每次从各所述第一存储块并行读取出的数据并行地分别与输入的主数据ID进行比较,得到位于输入的主数据ID所在地址的主数据及子表ID。
在一些实施例中,根据输入的从数据ID并行检索多个所述第二存储块中的对应位于输入的主数据ID所在地址的子表ID的区域中的数据,得到位于输入的从数据ID所在地址的从数据,包括:根据输入的从数据ID并行检索所有所述第二存储块中的对应位于输入的主数据ID所在地址的子表ID的区域中的数据,得到位于输入的从数据ID所在地址的从数据。
在一些实施例中,根据输入的从数据ID并行检索所有所述第二存储块中的对应位于输入的主数据ID所在地址的子表ID的区域中的数据,得到位于输入的从数据ID所在地址的从数据,包括:按地址顺序依次从各所述第二存储块中的对应位于输入的主数据ID所在地址的子表ID的区域并行读取数据,将每次从各第二存储块中的对应位于输入的主数据ID所在地址的子表ID的区域并行读取出的数据并行地分别与输入的从数据ID进行比较,得到位于输入的从数据ID所在地址的从数据。
根据本发明实施例的又一个方面,提供了一种数据库访问方法,包括:接收SQL语句,根据所述SQL语句得到输入的主数据ID和输入的从数据ID;将输入的主数据ID和输入的从数据ID发送至硬件数据库,以使硬件数据库利用任一实施例所述的用于硬件数据库的数据检索方法,根据输入的主数据ID和输入的从数据ID,从其主表和从表检索得到位于输入的主数据ID所在地址的主数据和位于输入的从数据ID所在地址的从数据;获取并根据硬件数据库检索到的位于输入的主数据ID所在地址的主数据和位于输入的从数据ID所在地址的从数据输出所述SQL语句的执行结果。
在一些实施例中,将输入的主数据ID和输入的从数据ID发送至硬件数据库之前或同时,所述的数据库访问方法,还包括:从软件数据库读取主表和从表,并利用任一实施例所述的用于硬件数据库的数据存储方法,将读取的主表和从表存储至硬件数据库。
根据本发明实施例的另一个方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述方法的步骤。
根据本发明实施例的另一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例所述方法的步骤。
本发明实施例的用于硬件数据库的数据存储方法、用于硬件数据库的数据检索方法、数据库访问方法、电子设备及计算机可读存储介质,通过将主表分割为第一数量的多个部分,并将主表的每个部分存储至一个第一存储块,并将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块,不仅能够实现基于硬件的数据存储等功能,而且能够极大加快了检索效率,进而提高计算效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明一实施例的用于硬件数据库的数据存储方法的流程示意图;
图2是本发明一实施例的用于硬件数据库的数据检索方法的流程示意图;
图3是本发明一实施例的数据库访问方法的流程示意图;
图4是本发明一具体实施例中主表的结构及其与子表的映射关系示意图;
图5是本发明一具体实施例中一子表的结构示意图;
图6是本发明一具体实施例中将主表分成多个部分的示意图;
图7是本发明一具体实施例中将各子表分割后再组合的示意图;
图8是本发明一具体实施例中对主表进行检索的示意图;
图9是本发明一具体实施例中对子表进行检索的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
若要在现有交易系统中加入事前风控,可以通过将风控规则卸载到硬件加速器(如FPGA、ASIC等)执行,能够提升计算效率。在进行风控检查的过程中,需要实现利用硬件记录各标的和对应账户信息。
为此,本发明实施例提供了一种用于硬件数据库的数据存储方法。图1是本发明一实施例的用于硬件数据库的数据存储方法的流程示意图。如图1所示,该数据存储方法,可包括步骤S110~步骤S120。
下面将对步骤S110至步骤S120的具体实施方式进行详细说明。
步骤S110:将主表分割为第一数量的多个部分,并将主表的每个部分存储至一个第一存储块。
其中,主表中每个地址包括主数据ID、主数据及子表ID,每个子表ID对应一个子表,每个子表中每个地址包括从数据ID和从数据,所述第一数量和所述第二数量相同或不同。主数据ID、子表ID、从数据ID分别是主数据唯一标识、子表唯一标识、从数据唯一标识,为此,不同用途的ID之间以及同一用途的不同ID之间都不重复。
主表中可以记录多条数据记录,每条数据记录可包含一个地址和三个存储空间,这三个存储空间可以分别用于存放主数据ID、主数据及子表ID。主数据ID可以用作索引,以从主表中检索到该条数据记录的主数据及子表ID。主表通过其中的子表ID对应一个或多个子表,子表ID可以用作找到子表的索引。每个子表中可以包含多条数据记录,每条数据记录可包含一个地址和两个存储空间,这两个存储空间可以分别用于存储从数据ID和从数据。
上述主表用于记录主数据,从表用于记录从数据,主数据和从数据相互对应,则上述主表和子表可以用于存储这样的数据。根据输入的主数据ID和从数据ID检索主表和子表,可以找到相应的主数据和从数据。例如,对于加入事前风控的交易系统而言,若要将风控规则卸载到硬件执行,则可使用上述主表和子表分别记录各标的和账户信息。根据标的ID和账户ID检索主表和子表,可以得到标的内容和账户信息内容。
主表分割部分的数量,即,该第一数量,可以根据硬件中可以用作存储主表分割部分的存储块的数量、存储块的大小、主表数据量大小等确定。上述第一存储块是指用来存储主表数据块的存储单元,其中的“第一”主要是用于将第一存储块与后述第二存储块进行区分。该第一存储块可以是硬件中的随机存储器,所以,第一存储块的数量可以根据硬件中可使用的随机存储器资源确定。
在一些实施例中,对主表分割后,主表的各部分的数据量可以相同。其中的数据量可以是指数据个数或记录条数。具体地,可以根据可用的第一存储块的数量对主表进行平均分割。此时,各第一存储块的容量可以相同。对于平均分割的情况而言,是指相对的说法,尽量平均,并非绝对平均,例如,当主表的数据量不正好是第一存储块的整数倍时,可以让多数第一存储块存储的数据量相同,少量第一存储块存储数据可以略少或略多。数据可以以二进制形式存储在第一存储块中,例如,用32位二进制数表示一个数据,第一存储块的最大存储位数可以是256位。在其他实施例中,对主表的分割也可以是非平均的,或者按其他规律分割。
步骤S120:将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块。
每个子表的分割部分的数量,即该第二数量,可以根据硬件中可以用作存储组合得到的数据块的存储块的数量、存储块的大小、子表数量、该组合得到的数据块的数据量大小等确定。上述第二存储块是指用来存储组合得到的数据块的存储单元,其中的“第二”主要是用于将第二存储块与前述第一存储块进行区分。
上述序位是指子表被分割成多个部分后,某部分在该子表中的相对位置。若子表中的地址是依次增大的,则该子表中各部分在子表中的相对位置可以根据地址区段来确定,或者可以根据依据地址区段顺序对各部分的编号来确定。例如,将10个子表从低地址开始依次进行分割,各子表可均平均分割为n个,那么,可以将10个子表的第i个部分组合在一起,其中,i为大于或等于1且小于或等于n的整数,n为大于1的整数。
在一些实施例中,各子表的各部分的数据量可以相同。换言之,每个子表被分割后的各部分的数据量可以相同,不同子表的分割得到的部分也可以相同。在各子表的深度相同的情况下,通过对各子表均平均分割为上述第二数量,可使各子表的各部分的数据量相同。当然,各子表的各部分的数据量相同是相对来说的,平均分割也是相对来说的,可以是大多数部分的数据量是相同的,少数部分的数据量可以略少或略多。例如,若子表的深度并不正好是该第二数量的整数倍,则不能绝对平均的进行分割,所以,可能存在少数存储块或数据块的数据量略少的情况。该第二存储块可以是硬件中的随机存储器,所以,第二存储块的数量可以根据硬件中可使用的随机存储器资源确定。组合得到的数据块的数据可以以二进制形式存储在第二存储块中,例如,用32位二进制数表示一个数据,第二存储块的最大存储位数可以是1024位,可以共有256个。在其他实施例中,对子表的分割也可以是非平均的,或者按其他规律分割,或者虽然各子表的分割不均等但组合得到的各数据块的数据量可以相同。
在对所有子表的分割部分进行组合时,可以按一定顺序,例如,各子表的顺序,进行组合来存储到第二存储块。
示例性地,上述步骤S120中,将所有子表的同一序位的部分组合在一起,具体地,可包括步骤:S1211,将所有子表的同一序位的部分按对应的子表ID在主表中的地址顺序合并在一起。
每个子表可以以其子表ID作为索引,而子表ID存储在主表中,所以,子表ID在主表中对应有一存储地址,各子表的子表ID在主表中具有一定的存储顺序,该顺序可以用地址顺序来表示,其中,例如可以是从低地址到高地址的顺序。例如,10个子表分别分割为n部分,且这10个子表的子表ID在主表中的地址顺序为第1子表、第2子表、…、第10子表,则可以按从第1子表到第10子表的子表顺序将各子表的第1部分组合在一起,可以按从第1子表到第10子表的子表顺序将各子表的第2部分组合在一起,依次进行,可以按从第1子表到第10子表的子表顺序将各子表的第n部分组合在一起,其中,组合时,第1子表到第10子表的部分可以是以地址不断增大的方式存在第二存储块中。
在其他实施例中,可以按其他规定的顺序或随机顺序组合各子表的相应部分进行存储。
在一些实施例中,上述主表可以是先从硬件外部全部读取到硬件存储到一个或多个存储块,再从这些存储读取数据存储到不同的第一存储块中,从而实现分割存储。
示例性地,上述步骤S110之前,即,将主表分割为第一数量的多个部分,并将主表的每个部分存储至一个第一存储块之前,图1所示的方法,还可包括步骤:S130,接收主表,并将主表存储在第三存储块中。在此情况下,上述步骤S110,即,将主表分割为第一数量的多个部分,并将主表的每个部分存储至一个第一存储块,具体地,可包括步骤:S1111,从所述第三存储块读取主表,以将主表分割为第一数量的多个部分,并将主表的每个部分存储至一个第一存储块。
类似地,在一些实施例中,上述可以先获取到各子表,将获取的每个子表临时存储在一个存储块中,然后再从该些存储块读取各子表数据,以对子表数据进行分割、组合。
示例性地,上述步骤S120之前,即,将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块之前,图1所示的方法,还可包括步骤:S140,获取各子表,并将每个子表存储在一个第四存储块中。在此情况下,上述步骤S120,即,将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块,具体地,可包括步骤:S1221,从各所述第四存储块读取各相应子表,以将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块。
进一步地,可以从硬件外部(如软件数据库)读取包括所有子表数据的一个总表,然后在硬件中将该总表拆分为所需的子表,之后将拆分得到的这些子表存储起来,用于后续对子表进行分割、组合。
示例性地,上述步骤S140,即,获取各子表,并将每个子表存储在一个第四存储块中,具体地,可包括步骤:S1411,接收包括所有子表数据的总表,将所述总表拆分为所述子表,以及将每个子表存储在一个第四存储块中。该示例中,可以边接收该总表,边将其拆分为所需的子表,并存储接收过程中分割得到的子表。
在另一示例中,在硬件外部可以已准备好了一个个子表,所以硬件可以直接从其外部(如软件数据库)读取得到各子表。例如,上述步骤S140,即,获取各子表,并将每个子表存储在一个第四存储块中,具体地,可包括步骤:S1412,接收各子表,并将每个子表存储在一个第四存储块中。该示例中,可以边读取各子表,边将各子表存在相应存储块中。
在另一实施例中,上述主表可以是从硬件外部(例如,软件数据库)读取到硬件上过程中分割成多个部分的,即,可以边读取数据边将数据分块存储到数据块中。
示例性地,上述步骤S110,即,将主表分割为第一数量的多个部分,并将主表的每个部分存储至一个第一存储块,具体地,可包括步骤:S1121,接收主表,以将主表分割为第一数量的多个部分,并将主表的每个部分存储至一个第一存储块。
该示例中,可以边接收主表的数据,边分割,边存储。所谓边接收边分割可以是指读取一部分后就存入一个存储块中,继续读取另一部分数据再存至另一个存储块,这样就可以分割成多个部分存储起来了。
类似地,在另一实施例中,可以边从硬件外部读取子表,边将子表进行分割存储,即,在读取过程中分割并存储。示例性地,上述步骤S120,即,将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块,具体地,可包括步骤:S1231,获取各子表,以将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块。
进一步地,可以先从硬件外部获取一个总表,然后在硬件中将该总表拆分为子表,在拆分过程中,可以进行子表分割,从而在拆分、分割并存储的过程中实现将各子表分割并组合存在各存储块中。
示例性地,上述步骤S1231,即,获取各子表,以将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块,更具体地,可包括步骤:S12311,接收包括所有子表数据的总表,以将所述总表拆分为所述子表,将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块。
另一示例中,可以边接收各子表,边分割,边组合,即,在接收、分割并组合的过程中,实现对子表分割组合后存储,例如,上述步骤S1231,即,获取各子表,以将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块,更具体地,可包括步骤:S12312,接收各子表,以将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块。
另外,本发明实施例还提供了一种用于硬件数据库的数据检索方法,可以用于以上述方法存储在硬件中的主表和子表中检索所需数据。
图2是本发明一实施例的用于硬件数据库的数据检索方法的流程示意图。如图2所示,该实施例的用于硬件数据库的数据检索方法,可包括步骤S210~步骤S250。
需要预先说明的是,该检索方法所适用的主表和子表满足:主表包括第一数量的多个部分,主表的每个部分是存储在一个第一存储块;各子表包括第二数量的多个部分,所有子表的同一序位的部分是组合在一起后存储在一个第二存储块的;主表中每个地址包括主数据ID、主数据及子表ID,每个子表ID对应一个子表,每个子表中每个地址包括从数据ID和从数据,所述第一数量和所述第二数量相同或不同。进一步的实施例中,主表的各部分的数据量可以相同;各子表的各部分的数据量可以相同。其中,重复之处可以参照上述实施例的存储方法的具体实施方式实施,故不再赘述。
步骤S210:获取输入的主数据ID和输入的从数据ID;
其中,输入的主数据ID和输入的从数据ID可以是通过解析由应用程序输入的SQL语句得到,解析过程可以在CPU端进行。
步骤S220:根据输入的主数据ID并行检索多个第一存储块中的数据,得到位于输入的主数据ID所在地址的主数据及子表ID。
在一些实施例中,可以对所有子表对应的存储块,即所有第一存储块进行检索。示例性地,该步骤S220,具体地,可包括步骤:S221,根据输入的主数据ID并行检索所有所述第一存储块中的数据,得到位于输入的主数据ID所在地址的主数据及子表ID。
进一步地,可以按存储块中各地址的顺序。示例性地,该步骤S221,即,根据输入的主数据ID并行检索所有第一存储块中的数据,得到位于输入的主数据ID所在地址的主数据及子表ID,具体地,可包括步骤:按地址顺序依次从各所述第一存储块并行读取数据,将每次从各所述第一存储块并行读取出的数据并行地分别与输入的主数据ID进行比较,得到位于输入的主数据ID所在地址的主数据及子表ID。
该示例中,例如,可以在第一存储块中从低地址到高地址读取数据,来和输入的主数据ID进行匹配比较。
步骤S230:输出位于输入的主数据ID所在地址的主数据,以及根据位于输入的主数据ID所在地址的子表ID确定第二存储块中对应位于输入的主数据ID所在地址的子表ID的区域。
步骤S240:根据输入的从数据ID并行检索多个所述第二存储块中的对应位于输入的主数据ID所在地址的子表ID的区域中的数据,得到位于输入的从数据ID所在地址的从数据;
在一些实施例中,可以对主表的所有存储组合后子表对应的存储块中的区域进行检索,即所有第二存储块中相应区域进行检索。示例性地,该步骤S240,具体地,可包括步骤:S241,根据输入的从数据ID并行检索所有所述第二存储块中的对应位于输入的主数据ID所在地址的子表ID的区域中的数据,得到位于输入的从数据ID所在地址的从数据。
进一步地,可以按存储块中各地址的顺序。上述步骤S241,更具体地,可包括步骤:按地址顺序依次从各所述第二存储块中的对应位于输入的主数据ID所在地址的子表ID的区域并行读取数据,将每次从各第二存储块中的对应位于输入的主数据ID所在地址的子表ID的区域并行读取出的数据并行地分别与输入的从数据ID进行比较,得到位于输入的从数据ID所在地址的从数据。
步骤S250:输出位于输入的从数据ID所在地址的从数据。
其中,上述步骤S230中输出位于输入的主数据ID所在地址的主数据的步骤在步骤S220之后即可,不限于步骤S240之前,例如,可以与检索到的从数据一起输出至硬件外部,或者可以在输出检索到的从数据之前将检索到的主数据输出至硬件外部。
在一个实施例中,将m^2(=n^4)个从数据分成m组,每组里面有m个从数据;每组从数据用一个深度为m的子表存储器(子表)存储,每个子表存储器对应一个子表ID;在子表存储器中,一个从数据ID和一个从数据对应一个子表地址;子表ID用来找到子表中的数据;用一个深度为m的主表存储器(主表)来储存这m个子表ID,在主表存储器中,每个子表ID附带一个主数据及相应的主数据ID,子表ID、一个主数据、主数据ID对应一个地址;主表ID用于索引、查询、修改主表中的数据,还用于根据主表中的子表ID辅助索引、查询、修改子表数据;将主表分割为n部分,每部分的深度为n;每部分形成一个深度为n的存储块,供n个存储块;将每个子表分割为n部分,每部分的深度为n;再将各子表的第一部分按子表顺序组合在一起,形成m*n的第一个存储块;各子表的第二部分按子表顺序组合在一起,形成m*n的第二个存储块;依次组合,形成n个深度为m*n的存储块。
进一步的实施例中,接收并存储输入的主数据ID和从数据ID;根据主数据ID检索出主数据和子表ID(主表检索):根据主数据ID,并行检索主表的各存储块,得到主数据和子表ID,输出主数据,记录子表ID。根据从数据ID和检索得到的子表ID检索出从数据(子表检索);根据子表ID确定了各子表存储块中的区域,针对该区域,根据从数据ID并行检索所有子表的存储块,得到从数据,输出从数据。
在另一个实施例中,将n^4个从数据分成m组,每组里面有n^4/m个从数据;每组从数据用一个深度为n^4/m的子表存储器(子表)存储,每个子表存储器对应一个子表ID;在子表存储器中,一个从数据ID和一个从数据对应一个子表地址;子表ID用来找到子表中的数据;用一个深度为m的主表存储器(主表)来储存这m个子表ID,在主表存储器中,每个子表ID附带一个主数据及相应的主数据ID,子表ID、一个主数据、主数据ID对应一个地址;主表ID用于索引、查询、修改主表中的数据,还用于根据主表中的子表ID辅助索引、查询、修改子表数据;将主表分割为k部分,每部分的深度为m/k;每部分形成一个深度为m/k的存储块,共m/k个存储块。
进一步地,将每个子表分割为h部分,每部分的深度为(n^4/m)/h;再将各子表的第一部分按子表顺序组合在一起,形成m*[(n^4/m)/h]的第一个存储块;各子表的第二部分按子表顺序组合在一起,形成m*[(n^4/m)/h]的第二个存储块;依次组合,形成h个深度为m*[(n^4/m)/h]的存储块。
其中,涉及的表述存储块个数、数据量等的数值为正整数。
上述各实施例的数据存储方法和各实施例的数据检索方法,可以是在硬件上进行的。该硬件可以实时利用上述方法存储数据至其存储块,然后在从存储块的检索所需数据;或者该硬件已预先以上述数据存储方法所对应的存储方式将数据存储至其存储块,之后主要进行检索过程。在访问数据库(包括硬件/硬件数据库和软件数据库/传统数据库)时,可以利用上述实施例的检索方法利用硬件进行检索,检索得到数据前后还可以包括其他一些过程。
基于此,本发明实施例还提供了一种数据库访问方法。图3是本发明一实施例的数据库访问方法的流程示意图。如图3所示,该数据库访问方法可包括以下步骤S310~步骤S330。
步骤S310:接收SQL语句,根据所述SQL语句得到输入的主数据ID和输入的从数据ID。
该步骤S310中,可以从应用程序接收SQL语句,可以在CPU端解析该SQL语句,然后得到其中的主数据ID和从数据ID,得到的主数据ID和从数据ID传输至硬件(或称硬件数据库,再或者硬件加速器,可以是FPGA、ASIC等)。
步骤S320:将输入的主数据ID和输入的从数据ID发送至硬件数据库,以使硬件数据库利用上述任一实施例所述的用于硬件数据库的数据检索方法,根据输入的主数据ID和输入的从数据ID,从其主表和从表检索得到位于输入的主数据ID所在地址的主数据和位于输入的从数据ID所在地址的从数据。
该步骤S320的具体实施方式可参照上述实施例的数据检索方法实施。
步骤S330:获取并根据硬件数据库检索到的位于输入的主数据ID所在地址的主数据和位于输入的从数据ID所在地址的从数据输出所述SQL语句的执行结果。
该步骤S330中,在硬件中,检索到主数据和从数据之后,还可进行其他操作,例如,对检索到的数据进行查询等。或者可以将硬件检索到主数据和从数据传输至CPU端进行其他操作,例如修改等;或者,可以直接将检索到主数据和从数据从CPU端输出显示。
在一些实施例中,上述数据库访问方法还可包括存储数据至硬件的过程。示例性地,上述步骤S310之前,即,将输入的主数据ID和输入的从数据ID发送至硬件数据库之前或同时,图3所示的方法,还可包括步骤:S340,从软件数据库读取主表和从表,并利用上述任一实施例所述的用于硬件数据库的数据存储方法,将读取的主表和从表存储至硬件数据库。该实施例中,数据存储方法的具体实施方式参见前述实施例的数据存储方法的具体实施方式实施。
基于与图1所示用于硬件数据库的数据存储方法、图2所示用于硬件数据库的数据检索方法或图3所示数据库访问方法相同的发明构思,本发明实施例还提供了一种电子设备。该电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述的用于硬件数据库的数据存储方法、上述任一实施例所述的用于硬件数据库的数据检索方法或上述任一实施例所述的数据库访问方法的步骤。
对于上述任一实施例所述的用于硬件数据库的数据存储方法和上述任一实施例所述的用于硬件数据库的数据检索方法而言,电子设备可以是硬件,例如,FPGA、ASIC等。对于上述任一实施例所述的数据库访问方法而言,电子设备可以包括计算机/服务器,还可以包括硬件等。
另外,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例所述的用于硬件数据库的数据存储方法、上述任一实施例所述的用于硬件数据库的数据检索方法或上述任一实施例所述的数据库访问方法的步骤。
为使本领域技术人员更好地了解本发明,下面将以具体实施例说明本发明的实施方式。
本实施例提供了一种数据的存储方法,以及对应的检索方法。以低硬件资源消耗,解决了大容量数据的检索速度慢的问题。在检索后可对数据进行更新或者读出。
假设对一些数据进行储存所需的数据容量或需要存储的数据有(n^4+n^2)个,其中n^2个数据是主数据,n^4是从数据(为方便后续说明,令m=n^2)。
将其中的从数据分成m组,每组里面有m个数据。每组数据用一个子表存储器(child table,简称table)储存,存放m个对应会有一个ID。用一个深度为m的存储器来储存这m个编号ID(子表ID),同时每一个子表ID附带一个主数据跟该主数据的ID。这个存储器命名为主表(core table)。
图4是本发明一具体实施例中主表的结构及其与子表的映射关系示意图,映射关系如图4所示。其中各个数据的后标数字只为了说明区别,所有的ID不会有相同的。主表存储器深度为m,每一个地址包含三个数据,主数据ID,主数据,子表ID。其中,主表ID用来索引,查询或者修改对应的主表数据,以及根据其对应的子表ID,辅助索引查询或者修改子表数据。
图5是本发明一具体实施例中一子表的结构示意图。图5示出了图4中的子表,如图5所示,一个子表,深度为m,可存储m个从数据,每一个从数据都有一个独特的数据ID。
以上进行说明的是储存关系。为了加快检索速度,实现并行化索引,并降低硬件资源消耗,还需要将主表分割存储,如图6所示,将深度为m的主表,分割成n个部分,每个部分的深度都为n。对子表分割后再组合存储,最终的存储形式如图7所示。一共有m个子表。将每个子表全部平均分割成n个部分,每个部分深度为n。然后所有子表的第一个部分,按照顺序组合在一块,形成一个深度为m*n的存储块;同样的,所有子表的第二个部分,按照顺序组合在一块……以此类推,最后组合的结果是,一共有n块深度为m*n的存储块。就是说每个子表都被平均的分配到了组合的存储块里面。
外部记录主数据的ID跟从数据的ID,不知道数据存放的具体地址。对以上述实施例所述方式存储的主表和子表进行检索,检索时,外部输入一个主数据ID跟一个从数据ID,存储块根据这个两个ID分步检索,首先根据主数据ID检索出主数据跟子表ID,再由子表ID结合从数据ID检索出从数据。
检索过程可包括:第一步主表检索,第二步子表检索。图8是本发明一具体实施例中对主表进行检索的示意图,参见图8,主表的每一块存储块从最低存储地址开始依次往下读出,每读出一个主数据ID,与外部输入的主数据ID进行比对;由于有n块存储器,进行并行比对,每次可以比对n个数据;当读出的主数据ID跟外部输入的主数据ID比对一致时,将该主数据ID对应的主数据输出,同时记录子表ID,并进入第二步检索。图9是本发明一具体实施例中对子表进行检索的示意图,参见图9,第二步子表检索,根据子表ID,锁定子表存储块的深度为n的区域,比如某次检索出的子表ID锁定了第二个子表,那么检索空间将锁定为n个子表存储块中深度n至2n-1的区间。
本实施例的硬件数据库数据存储及检索方法,能够实现硬件数据存储及检索功能,而且,(n^4+n^2)个数据最终检索次数被约束在2n以内,所以确实极大加快了检索效率。
综上所述,本发明实施例的用于硬件数据库的数据存储方法、用于硬件数据库的数据检索方法、数据库访问方法、电子设备及计算机可读存储介质,通过将主表分割为第一数量的多个部分,并将主表的每个部分存储至一个第一存储块,并将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块,不仅能够实现基于硬件的数据存储等功能,而且能够极大加快了检索效率,进而提高计算效率。
在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本发明的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (19)
1.一种用于硬件数据库的数据存储方法,其特征在于,包括:
将主表分割为第一数量的多个部分,并将主表的每个部分存储至一个第一存储块;
将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块;
其中,主表中每个地址包括主数据ID、主数据及子表ID,每个子表ID对应一个子表,每个子表中每个地址包括从数据ID和从数据,所述第一数量和所述第二数量相同或不同;主表通过其中的子表ID对应一个或多个子表,子表ID用作找到子表的索引。
2.如权利要求1所述的用于硬件数据库的数据存储方法,其特征在于,主表的各部分的数据量相同;各子表的各部分的数据量相同。
3.如权利要求1所述的硬件数据库的数据存储方法,其特征在于,将所有子表的同一序位的部分组合在一起,包括:
将所有子表的同一序位的部分按对应的子表ID在主表中的地址顺序合并在一起。
4.如权利要求1所述的用于硬件数据库的数据存储方法,其特征在于,
将主表分割为第一数量的多个部分,并将主表的每个部分存储至一个第一存储块之前,所述方法,还包括:
接收主表,并将主表存储在第三存储块中;
将主表分割为第一数量的多个部分,并将主表的每个部分存储至一个第一存储块,包括:
从所述第三存储块读取主表,以将主表分割为第一数量的多个部分,并将主表的每个部分存储至一个第一存储块;
将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块之前,所述方法,还包括:
获取各子表,并将每个子表存储在一个第四存储块中;
将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块,包括:
从各所述第四存储块读取各相应子表,以将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块。
5.如权利要求4所述的用于硬件数据库的数据存储方法,其特征在于,获取各子表,并将每个子表存储在一个第四存储块中,包括:
接收包括所有子表数据的总表,将所述总表拆分为所述子表,以及将每个子表存储在一个第四存储块中。
6.如权利要求4所述的用于硬件数据库的数据存储方法,其特征在于,获取各子表,并将每个子表存储在一个第四存储块中,包括:
接收各子表,并将每个子表存储在一个第四存储块中。
7.如权利要求1所述的用于硬件数据库的数据存储方法,其特征在于,
将主表分割为第一数量的多个部分,并将主表的每个部分存储至一个第一存储块,包括:
接收主表,以将主表分割为第一数量的多个部分,并将主表的每个部分存储至一个第一存储块;
将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块,包括:
获取各子表,以将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块。
8.如权利要求7所述的用于硬件数据库的数据存储方法,其特征在于,获取各子表,以将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块,包括:
接收包括所有子表数据的总表,以将所述总表拆分为所述子表,将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块。
9.如权利要求7所述的用于硬件数据库的数据存储方法,其特征在于,获取各子表,以将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块,包括:
接收各子表,以将各子表分割为第二数量的多个部分,将所有子表的同一序位的部分组合在一起,以及将每个组合结果存储至一个第二存储块。
10.一种用于硬件数据库的数据检索方法,其特征在于,包括:
获取输入的主数据ID和输入的从数据ID;
根据输入的主数据ID并行检索多个第一存储块中的数据,得到位于输入的主数据ID所在地址的主数据及子表ID;
输出位于输入的主数据ID所在地址的主数据,以及根据位于输入的主数据ID所在地址的子表ID确定第二存储块中对应位于输入的主数据ID所在地址的子表ID的区域;
根据输入的从数据ID并行检索多个所述第二存储块中的对应位于输入的主数据ID所在地址的子表ID的区域中的数据,得到位于输入的从数据ID所在地址的从数据;
输出位于输入的从数据ID所在地址的从数据;
其中,主表包括第一数量的多个部分,主表的每个部分是存储在一个第一存储块;各子表包括第二数量的多个部分,所有子表的同一序位的部分是组合在一起后存储在一个第二存储块的;主表中每个地址包括主数据ID、主数据及子表ID,每个子表ID对应一个子表,每个子表中每个地址包括从数据ID和从数据,所述第一数量和所述第二数量相同或不同;主表通过其中的子表ID对应一个或多个子表,子表ID用作找到子表的索引。
11.如权利要求10所述的用于硬件数据库的数据检索方法,其特征在于,主表的各部分的数据量相同;各子表的各部分的数据量相同。
12.如权利要求10所述的用于硬件数据库的数据检索方法,其特征在于,根据输入的主数据ID并行检索多个所述第一存储块中的数据,得到位于输入的主数据ID所在地址的主数据及子表ID,包括:
根据输入的主数据ID并行检索所有所述第一存储块中的数据,得到位于输入的主数据ID所在地址的主数据及子表ID。
13.如权利要求12所述的用于硬件数据库的数据检索方法,其特征在于,根据输入的主数据ID并行检索所有所述第一存储块中的数据,得到位于输入的主数据ID所在地址的主数据及子表ID,包括:
按地址顺序依次从各所述第一存储块并行读取数据,将每次从各所述第一存储块并行读取出的数据并行地分别与输入的主数据ID进行比较,得到位于输入的主数据ID所在地址的主数据及子表ID。
14.如权利要求10所述的用于硬件数据库的数据检索方法,其特征在于,根据输入的从数据ID并行检索多个所述第二存储块中的对应位于输入的主数据ID所在地址的子表ID的区域中的数据,得到位于输入的从数据ID所在地址的从数据,包括:
根据输入的从数据ID并行检索所有所述第二存储块中的对应位于输入的主数据ID所在地址的子表ID的区域中的数据,得到位于输入的从数据ID所在地址的从数据。
15.如权利要求14所述的用于硬件数据库的数据检索方法,其特征在于,根据输入的从数据ID并行检索所有所述第二存储块中的对应位于输入的主数据ID所在地址的子表ID的区域中的数据,得到位于输入的从数据ID所在地址的从数据,包括:
按地址顺序依次从各所述第二存储块中的对应位于输入的主数据ID所在地址的子表ID的区域并行读取数据,将每次从各第二存储块中的对应位于输入的主数据ID所在地址的子表ID的区域并行读取出的数据并行地分别与输入的从数据ID进行比较,得到位于输入的从数据ID所在地址的从数据。
16.一种数据库访问方法,其特征在于,包括:
接收SQL语句,根据所述SQL语句得到输入的主数据ID和输入的从数据ID;
将输入的主数据ID和输入的从数据ID发送至硬件数据库,以使硬件数据库利用如权利要求10至15任一项所述的用于硬件数据库的数据检索方法,根据输入的主数据ID和输入的从数据ID,从其主表和从表检索得到位于输入的主数据ID所在地址的主数据和位于输入的从数据ID所在地址的从数据;
获取并根据硬件数据库检索到的位于输入的主数据ID所在地址的主数据和位于输入的从数据ID所在地址的从数据输出所述SQL语句的执行结果。
17.如权利要求16所述的数据库访问方法,其特征在于,将输入的主数据ID和输入的从数据ID发送至硬件数据库之前或同时,还包括:
从软件数据库读取主表和从表,并利用如权利要求1至9任一项所述的用于硬件数据库的数据存储方法,将读取的主表和从表存储至硬件数据库。
18.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至17任一项所述方法的步骤。
19.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至17任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010030466.1A CN111241102B (zh) | 2020-01-13 | 2020-01-13 | 数据存储方法、数据检索方法、数据库访问方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010030466.1A CN111241102B (zh) | 2020-01-13 | 2020-01-13 | 数据存储方法、数据检索方法、数据库访问方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111241102A CN111241102A (zh) | 2020-06-05 |
CN111241102B true CN111241102B (zh) | 2021-02-09 |
Family
ID=70877820
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010030466.1A Active CN111241102B (zh) | 2020-01-13 | 2020-01-13 | 数据存储方法、数据检索方法、数据库访问方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111241102B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6845375B1 (en) * | 2001-10-20 | 2005-01-18 | Ncr Corporation | Multi-level partitioned database system |
CN101034349A (zh) * | 2007-04-06 | 2007-09-12 | 西安万年科技实业有限公司 | 基于功能设计的数据库应用系统开发平台 |
CN104516967A (zh) * | 2014-12-25 | 2015-04-15 | 国家电网公司 | 一种电力系统海量数据管理系统及其使用方法 |
CN109376151A (zh) * | 2018-09-04 | 2019-02-22 | 中国建设银行股份有限公司 | 数据分库处理方法、系统、装置和存储介质 |
-
2020
- 2020-01-13 CN CN202010030466.1A patent/CN111241102B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6845375B1 (en) * | 2001-10-20 | 2005-01-18 | Ncr Corporation | Multi-level partitioned database system |
CN101034349A (zh) * | 2007-04-06 | 2007-09-12 | 西安万年科技实业有限公司 | 基于功能设计的数据库应用系统开发平台 |
CN104516967A (zh) * | 2014-12-25 | 2015-04-15 | 国家电网公司 | 一种电力系统海量数据管理系统及其使用方法 |
CN109376151A (zh) * | 2018-09-04 | 2019-02-22 | 中国建设银行股份有限公司 | 数据分库处理方法、系统、装置和存储介质 |
Non-Patent Citations (4)
Title |
---|
基于SaaS平台的数据库性能优化研究与设计;周媛;《中国优秀硕士学位论文全文数据库 信息科技辑》;20131115;正文第四章 * |
数据库分库分表思路;butterfly100;《https://www.cnblogs.com/butterfly100/p/9034281.html》;20180514;正文 * |
面向海量高并发数据库中间件的研究与应用;项凯;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160315;正文第2-4章 * |
项凯.面向海量高并发数据库中间件的研究与应用.《中国优秀硕士学位论文全文数据库 信息科技辑》.2016,正文第2-4章. * |
Also Published As
Publication number | Publication date |
---|---|
CN111241102A (zh) | 2020-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11797509B2 (en) | Hash multi-table join implementation method based on grouping vector | |
US8935233B2 (en) | Approximate index in relational databases | |
US10810197B2 (en) | Method and database computer system for performing a database query using a bitmap index | |
US20120323867A1 (en) | Systems and methods for querying column oriented databases | |
US20140012882A1 (en) | Method of processing relational queries in a database system and corresponding database system | |
CN107368527B (zh) | 基于数据流的多属性索引方法 | |
CN110990402B (zh) | 由行存储到列存储的格式转化方法、查询方法及装置 | |
KR20090048624A (ko) | 데이터 구조를 가지는 하나 이상의 장치 판독가능 매체, 및장치 실행가능 명령어를 구비한 하나 이상의 장치 판독가능 매체 | |
US20130097126A1 (en) | Using an inverted index to produce an answer to a query | |
CN110597852A (zh) | 数据处理方法、装置、终端及存储介质 | |
US10877973B2 (en) | Method for efficient one-to-one join | |
US20230161765A1 (en) | System and method for disjunctive joins using a lookup table | |
CN113918605A (zh) | 数据查询方法、装置、设备以及计算机存储介质 | |
Alam et al. | Performance of point and range queries for in-memory databases using radix trees on GPUs | |
CN111125216B (zh) | 数据导入Phoenix的方法及装置 | |
CN111241102B (zh) | 数据存储方法、数据检索方法、数据库访问方法及装置 | |
CN114969110B (zh) | 查询方法和装置 | |
CN108595482B (zh) | 一种数据索引方法及装置 | |
US11275737B2 (en) | Assignment of objects to processing engines for efficient database operations | |
CN111309704B (zh) | 数据库操作方法和数据库操作系统 | |
CN113505276A (zh) | 预计算模型的评分方法、装置、设备和存储介质 | |
CN108874849B (zh) | 一种非等值关联子查询的优化方法和系统 | |
US11188541B2 (en) | Join method, computer program and recording medium thereof | |
CN112860734A (zh) | 地震数据多维度范围查询方法及装置 | |
Chaalal et al. | T-plotter: A new data structure to reconcile OLAP and OLTP models |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |