CN110019971B - 一种索引创建方法、装置及数据库系统 - Google Patents
一种索引创建方法、装置及数据库系统 Download PDFInfo
- Publication number
- CN110019971B CN110019971B CN201710862401.1A CN201710862401A CN110019971B CN 110019971 B CN110019971 B CN 110019971B CN 201710862401 A CN201710862401 A CN 201710862401A CN 110019971 B CN110019971 B CN 110019971B
- Authority
- CN
- China
- Prior art keywords
- data
- index
- data table
- request
- adjusting
- 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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
Abstract
一种索引创建方法、装置及数据库系统,包括:接收为数据表创建索引的请求;基于所述请求,调整所述数据表的数据存储顺序;基于所述调整后的数据存储顺序,响应所述请求创建索引。本申请至少能够大幅降低索引的数据离散度,有效避免IO放大和离散IO的情况,从而能够在按索引搜索数据或对数据排序时提高数据搜索的效率,减少开销。
Description
技术领域
本发明涉及数据库技术领域,尤其涉及一种索引创建方法、装置及数据库系统。
背景技术
通常数据库的数据是堆存储,也就是说数据库中数据的存储是无序的。当需要搜索某个字段的值符合某个条件的数据时,没有索引的话,需要扫描所有数据块。基于此,相关技术中,针对数据库中表数据的列创建索引,通过索引的指针指向相应列记录,从而可以通过索引扫描加速字段值的搜索过程。
虽然创建了索引,但数据库中数据还是无序分布的。此情况下,如果需要查询符合某个条件的数据、或按某个字段对数据进行排序,则需要根据索引扫描数据,索引扫描时就需要扫描到很多数据块,而这些数据块中很可能存在不相关的数据,存在IO放大和离散IO的情况,由此会造成数据库的数据处理效率低、开销大等问题。
发明内容
本申请旨在至少解决相关技术中的技术问题之一。
本申请提供一种索引创建方法、装置及数据库系统,至少能够降低数据离散度。
本申请采用如下技术方案:
一种索引创建方法,包括:
接收为数据表创建索引的请求;
基于所述请求,调整所述数据表的数据存储顺序;
基于所述调整后的数据存储顺序,响应所述请求创建索引。
其中,所述基于所述请求,调整所述数据表的数据存储顺序,包括:
如果所述请求中携带所述索引有数据整理需求的指示信息,或者默认配置为所有索引均有数据整理需求,则调整所述数据表的数据存储顺序。
其中,所述方法还包括:如果所述请求中携带所述索引有数据整理需求的指示信息,将所述索引记录为有数据整理需求的索引。
其中,所述方法还包括:如果所述请求中携带所述第一索引无数据整理需求的指示信息,则不对所述数据表数据的存储顺序进行调整,直接响应所述请求创建索引。
其中,所述调整所述数据表的数据存储顺序,包括:如果所述数据表的已有索引中不存在有数据整理需求的索引,则按照当前索引的顺序调整所述数据表数据的存储顺序;如果所述数据表的已有索引中存在有数据整理需求的索引,则按照当前索引和所述已有索引中有数据整理需求的索引的多列顺序,调整所述数据表数据的存储顺序。
一种数据库系统,包括请求接收模块、索引创建模块和数据调整模块,其中:
请求接收模块,用于接收为数据表创建索引的请求;
数据调整模块,用于基于所述请求,调整所述数据表的数据存储顺序;
索引创建模块,用于基于所述调整后的数据存储顺序,响应所述请求创建索引。
其中,所述数据调整模块,用于基于所述请求,调整所述数据表的数据存储顺序,包括:如果所述请求中携带所述索引有数据整理需求的指示信息,或者默认配置为所有索引均有数据整理需求,则调整所述数据表的数据存储顺序。
其中,所述索引创建模块,还用于在所述请求中携带所述索引有数据整理需求的指示信息时,将所述索引记录为有数据整理需求的索引。
其中,所述数据调整模块,用于调整所述数据表的数据存储顺序,包括:如果所述数据表的已有索引中不存在有数据整理需求的索引,则按照当前索引的顺序调整所述数据表数据的存储顺序;如果所述数据表的已有索引中存在有数据整理需求的索引,则按照当前索引和所述已有索引中有数据整理需求的索引的多列顺序,调整所述数据表数据的存储顺序。
一种索引创建装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算程序时实现上述的方法和处理。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法和处理。
本申请包括以下优点:
本申请中,在创建索引的过程中将数据按索引顺序进行整理,这样,可以大幅降低索引的数据离散度,有效避免IO放大和离散IO的情况,从而能够在按索引搜索数据或对数据排序时提高数据搜索的效率,减少开销。除此之外,在创建索引的过程中对数据进行整理,不仅可有效节省索引扫描带来的开销,而且可确保数据的整理与索引的更新同步,从而进一步提高数据搜索的效率。
当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有优点。
附图说明
图1为数据离散度高的情况下查询数据时索引扫描的示意图;
图2为数据离散度高的情况下对数据排序的示意图;
图3为实施例一中索引创建方法的流程示意图;
图4为实施例一中索引创建的示例性实现过程的示意图;
图5为实施例二中数据库系统的组成结构示意图。
具体实施方式
下面将结合附图及实施例对本申请的技术方案进行更详细的说明。
需要说明的是,如果不冲突,本申请实施例以及实施例中的各个特征可以相互结合,均在本申请的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在一个典型的配置中,客户端或服务器的计算设备可包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存(memory)。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。内存可能包括模块1,模块2,……,模块N(N为大于2的整数)。
计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质。存储介质可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM),快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
相关技术中,索引的数据离散度高,在执行索引扫描、按照索引排序等操作时会由于离散IO和IO放大而导致数据库的处理效率低、开销大等问题。
如图1所示,col=2的数据离散度很高,col=2的索引所指向的数据存放在多个不同的数据块中。执行col=2索引扫描时,就需要扫描这些数据块,这必然会存在离散IO和IO放大的情况,而离散IO和IO放大则必然会导致数据库的处理效率低、开销大等问题。如图2所示,将数据按照col=2进行排序时,由于离散度非常高,需要从这些数据块中访问相关数据并进行重排,这必然会存在离散IO和IO放大的情况,而离散IO和IO放大则会造成执行效率低、开销大的问题。
针对上述情况,本申请提出如下技术方案。需要说明的是,本申请技术方案可应用于多种类型的数据库,比如,可应用于关系型关系型,也可以应用于分析型数据库等。
本文术语解释如下:
离散读写数据(IO,INPUT OUTPUT):当扫描多个数据块时,如果数据块是离散的,称之为离散IO。
IO放大:当扫描N条记录,但是访问的数据块超过N个时,称之为IO放大,N为不小于1的整数。
下面对本申请技术方案的具体实现方式进行详细说明。
实施例一
如图3所示,本实施例提供一种索引创建的方法,包括:
步骤301,接收为数据表创建索引的请求;
步骤302,基于所述请求,调整所述数据表的数据存储顺序;
步骤303,基于所述调整后的数据存储顺序,响应所述请求创建索引。
本实施例中,在创建索引的过程中将数据进行整理,这样,可以大幅降低索引的数据离散度,有效避免IO放大和离散IO的情况,从而能够在按索引搜索数据或对数据排序时提高数据搜索的效率,减少开销。除此之外,在创建索引的过程中对数据进行整理,不仅可有效节省索引扫描带来的开销,而且可确保数据的整理与索引的更新同步,从而进一步提高数据库的处理性能。本实施例中,数据库可以包含多个数据包表,一张数据表可以包括一个或多个数据块(Data Block)或数据页(Data Page),真正的数据以记录的形式保存在数据块或数据页中。
本实施例中,调整所述数据表的数据存储顺序可以是按照索引的顺序调整所述数据表的数据存储顺序。
本实施例中,索引是对数据表中一列或多列的值进行排序的一种存储结构,索引的顺序指索引中值的顺序,每个值对应数据表的一条或多条记录。根据当前索引的顺序调整相应数据表的数据存储顺序,即是将数据表中的记录按照对应的值的顺序存储(在数据块中连续存储)。
一种实现方式中,索引可以包括:定义索引时指定的值(即数据表中一列或多列的值)和逻辑指针,逻辑指针可以指向数据表中的数据块或另一个索引页。一个索引页可以存储多个索引。
本实施例中,在创建索引的请求中可以携带索引中值所满足的条件。一种实现方式中,该条件可以是用户设定的字段,也可以是用户设定的字段的表达式,该字段是数据表中的字段。比如,一张数据表有3个字段,分别是a、b、c,用户在创建索引的请求中设定“对字段a建立索引”,那么字段a就是被索引的列,索引中的值指的是该被索引的列对应的值。再比如,用户在创建索引的请求中设定“select*from table where a+b>10”,这里,a+b>10就是字段的表达式,表示需要对满足该“a+b>10”的字段a和字段b建立索引,a、b分别为数据表中的一个字段。那么字段a和字段b就是被索引的列,索引中的值指的是数据表中该被索引的列对应的值。又比如,用户在创建索引的请求中设定“Select*from table where 2a*b+c<10”,这里,2a*b+c<10就是字段表达式,表示需要对满足“2a*b+c<10”的字段a、字段b以及字段c建立索引,a、b、c分别为数据表中的字段。那么字段a、字段b和字段c就是被索引的列,索引中的值指的是该被索引的列对应的值。
本实施例中,所述基于所述请求,调整所述数据表的数据存储顺序,可以包括:如果所述请求中携带所述索引有数据整理需求的指示信息,或者默认配置为所有索引均有数据整理需求,则调整所述数据表的数据存储顺序。
本实施例中,默认配置为所有索引均有数据整理需求可以是:预先设置某一个数据表有数据整理需求的默认参数,该默认参数用于指示某一数据表是否具有在创建索引之前整理数据的需求。一种实现方式中,该默认参数可以预先设置于数据表的索引定义信息中,或者预先设置于该数据表的配置文件中。如果该默认参数指示为某一数据表具有创建索引之前整理数据的需求,则在创建索引之前按照所有索引的顺序调整该数据表数据的存储顺序。这里,在该数据表的所有索引包括两个或多个索引时,该调整该数据表数据的存储顺序的过程可以参考下文“所述数据表的已有索引中存在有数据整理需求的索引”的情况。在该数据表的所有索引包括一个索引时,该调整该数据表数据的存储顺序的过程可以参考下文“所述数据表的已有索引中不存在有数据整理需求的索引”的情况。
本实施例中,某一索引有数据整理需求,表示创建该索引之前,应根据索引顺序调整所述数据表的数据存储顺序。某一索引有数据整理需求的指示信息表示是否需要按照该索引整理数据。实际应用中,该指示信息可以通过一个标志表示。比如,该指示信息可以表示为一比特的标志,该标志取值为0时表示需要按照索引整理数据,该标志取值为1时表示不需要按照该索引整理数据。
本实施例中,上述方法还可以包括:如果所述请求中携带所述索引有数据整理需求的指示信息,将所述索引记录为有数据整理需求的索引。这里,可以在创建索引之后将所述索引记录为有数据整理需求的索引。比如,可以将该记录存储到索引的定义信息中,以便在下一次需要整理数据时可以从索引定义信息中找到该记录。
一种实现方式中,所述方法还可以包括:如果所述请求中携带所述第一索引无数据整理需求的指示信息,则不对所述数据表数据的存储顺序进行调整,直接响应所述请求创建索引。
本实施例中,某一索引无数据整理需求的指示信息表示不需要在创建该索引之前对数据表数据的存储顺序进行调整,可以直接创建该索引。实际应用中,该某一索引无数据整理需求的指示信息可以通过一个标志表示。比如,该某一索引无数据整理需求的指示信息可以表示为一比特的标志,该标志取值为1时表示不需要在创建该索引之前对数据表数据的存储顺序进行调整,可以直接创建该索引。
本实施例中,所述调整所述数据表数据的存储顺序,可以包括:如果所述数据表的已有索引中不存在有数据整理需求的索引,则按照当前索引的顺序调整所述数据表数据的存储顺序;如果所述数据表的已有索引中存在有数据整理需求的索引,则按照当前索引和所述已有索引中有数据整理需求的索引的多列顺序,调整所述数据表数据的存储顺序。这样,可以在创建索引的过程中结合所有索引进行数据整理,不仅更快速高效,而且数据整理的效果更佳。
本实施例中,多列顺序是指按照多个索引整理数据表的数据存储顺序时这多个索引中值的排序。比如,可以按照索引中值的唯一值来确定这多个索引的多列顺序。比如,可以先按照这多个索引中具有最少唯一值的字段值调整数据表数据的存储顺序,再按照具有次少唯一值的字段值调整数据表数据的存储顺序,以此类推,最后按照具有最多唯一值的字段值调整数据表数据的存储顺序。例如,如果已有索引的字段值包括“地区”,当前索引的字段值包括“价格”,其中,“地区”具有较少的唯一值,“价格”具有较多的唯一值,那么将这两个索引叠加,得到这两个索引的多列顺序为:先“地区”后“价格”,也就是说,先按照“地区”调整数据表数据的存储顺序,再按照“价格”调整数据表数据的存储顺序。
本实施例中,按照所述当前索引和所述已有索引中有数据整理需求的索引的多列顺序,调整所述数据表数据的存储顺序时,调整数据表数据的存储顺序的方式可以是:通过多值聚集算法调整数据表数据的存储顺序。该多值聚集算法可以有多种。比如,可以通过kmean聚集算法调整数据表数据的存储顺序。再比如,可以通过多维坐标投影聚集的方式调整数据表数据的存储顺序,即将多列的每个列作为一个坐标,每一条记录代表这个坐标系中的一个点,根据这些点的分布进行聚集。
需要说明的是,在其他实施例中还可以采用其他方式执行数据的整理,对此,本文不予限制。
下面以一个例子说明本实施例的示例性实现方式。
如图4所示,本例子中具体实现过程可以包括如下步骤:
步骤401,接收创建索引请求;
实际应用中,该创建索引请求可以是用户提交的语句或命令。比如,可以是表示创建索引请求的SQL语句。
步骤402,判断是否需要重排数据;
如果创建索引请求中携带该索引有数据整理需求的指示信息,且该指示信息表示需要按照该索引重排数据则继续步骤405,如果创建索引请求中携带该索引无数据整理需求的指示信息则直接跳转至步骤408,如果创建索引请求中没有携带任何指示信息可以继续步骤403;
步骤403,检查默认配置以确认是否需要整理数据,如果默认配置指示需要在创建索引前整理数据则继续步骤404,如果默认配置指示不需要在创建索引前整理数据则直接跳转至步骤408;
步骤404,按照所有索引的顺序调整数据表数据的存储顺序,继续步骤408;
步骤405,检查当前数据表的索引定义信息,判断是否存在有数据整理需求的已有索引,如果是则继续步骤406,如果否则继续步骤407;
步骤406,将有数据整理需求的已有索引与当前索引的值叠加,并按照叠加得到的多列顺序调整数据表数据的存储顺序,继续步骤408;
步骤407,按当前索引的顺序调整数据表数据的存储顺序;
步骤408,创建索引,将当前索引记录为有数据整理需求的索引,并将该记录存储到数据表的索引定义信息中。
实际应用中,本实施例的上述方法可通过任何能够实现上述功能的计算设备实现。该计算设备可以为服务器或服务器集群,该服务器可以是物理服务器,也可以是云服务器。
实施例二
本实施例还提供一种数据库系统,如图5所示,可以包括:请求接收模块51、索引创建模块52和数据调整模块53,其中:
请求接收模块51,用于接收为数据表创建索引的请求;
数据调整模块53,用于基于所述请求,调整所述数据表的数据存储顺序;
索引创建模块52,用于基于所述调整后的数据存储顺序,响应所述请求创建索引。
本实施例中,所述数据调整模块53,用于基于所述请求,调整所述数据表的数据存储顺序,包括:如果所述请求中携带所述索引有数据整理需求的指示信息,或者默认配置为所有索引均有数据整理需求,则调整所述数据表的数据存储顺序。
本实施例中,所述索引创建模块52,还可以用于在所述请求中携带所述索引有数据整理需求的指示信息时,将所述索引记录为有数据整理需求的索引。
本实施例中,所述数据调整模块53可以按照索引顺序调整所述数据表数据的存储顺序。这里,所述数据调整模块53用于调整所述数据表的数据存储顺序,包括:如果所述数据表的已有索引中不存在有数据整理需求的索引,则按照当前索引的顺序调整所述数据表数据的存储顺序;如果所述数据表的已有索引中存在有数据整理需求的索引,则按照当前索引和所述已有索引中有数据整理需求的索引的多列顺序,调整所述数据表数据的存储顺序。
需要说明的是,该数据库系统可以通过可实现上述功能的任何计算设备来实现,该计算设备可以是服务器或服务器集群,该服务器可以是物理服务器,也可以是云服务器。实际应用中,该数据库系统中,请求接收模块51、索引创建模块52和数据调整模块53分别可以是软件、硬件或两者的结合。
本实施例中的其他技术细节参照实施例一。
实施例三
一种索引创建装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算程序时实现上述实施例一所述的方法和处理。
需要说明的是,该索引创建装置可以是任何可实现上述功能的计算设备,该计算设备可以是服务器或服务器集群,该服务器可以是物理服务器,也可以是虚拟服务器。
本实施例中的其他技术细节参照实施例一。
实施例四
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现实施例一所述的方法和处理。
本实施例的其它实现细节可参考实施例一。
下面对上述各实施例的示例性实现方式进行详细说明。需要说明的是,下文各实例可相互结合。并且,下文实例中各流程、执行过程等也可以根据实际应用的需要进行调整。此外,在实际应用中,上述各实施例还可以有其他的实现方式,对此,本文不作限制。
本实例对本申请的示例性应用场景进行说明。
对于存储有电商数据的数据库,该电商数据以数据表的形式存储,一个数据表包含多个数据块,每个数据块存放有多条商品销售记录。用户可请求针对某一商品ID创建索引,同时在提交创建索引请求时可以携带该索引有数据整理需求的指示信息。数据库根据该指示信息确定需要在创建索引之前整理数据,则在对某一商品ID创建索引之前,可以按照索引的顺序(即,商品ID对应的值的顺序)对数据表中的相应商品销售记录进行重排。这之后,将该索引记录为有数据整理需求的索引,以备后续再执行数据整理使用。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。
当然,本申请还可有其他多种实施例,在不背离本申请精神及其实质的情况下,熟悉本领域的技术人员当可根据本申请作出各种相应的改变和变形,但这些相应的改变和变形都应属于本申请的权利要求的保护范围。
Claims (11)
1.一种索引创建方法,应用于堆存储的数据库;所述堆存储的数据库包含多个数据表,一张数据表包括一个或多个数据块或数据页,数据以记录的形式保存在所述数据块或所述数据页中;所述索引创建方法包括:
接收为数据表创建索引的请求;
基于所述请求,调整所述数据表的数据存储顺序;
基于所述调整后的数据存储顺序,响应所述请求创建索引;
所述调整所述数据表的数据存储顺序,包括:按照有数据整理需求的索引的顺序,调整所述数据表的数据存储顺序。
2.如权利要求1所述的索引创建方法,其特征在于,所述基于所述请求,调整所述数据表的数据存储顺序,包括:
如果所述请求中携带所述索引有数据整理需求的指示信息,则调整所述数据表的数据存储顺序;或者,
如果所述请求中没有携带所述索引是否有数据整理需求的指示信息,且默认配置为所述数据表的索引均有数据整理需求,则调整所述数据表的数据存储顺序。
3.如权利要求2所述的索引创建方法,其特征在于,所述接收为数据表创建索引的请求之后,所述方法还包括:如果所述请求中携带所述索引有数据整理需求的指示信息,将所述索引记录为有数据整理需求的索引。
4.如权利要求2所述的索引创建方法,其特征在于,所述接收为数据表创建索引的请求之后,所述方法还包括:
如果所述请求中携带所述索引无数据整理需求的指示信息,则不对所述数据表的数据存储顺序进行调整,直接响应所述请求创建索引;或者,
如果所述请求中没有携带所述索引是否有数据整理需求的指示信息,且所述默认配置为所有索引没有数据整理需求,则不对所述数据表的数据存储顺序进行调整,直接响应所述请求创建索引。
5.如权利要求1所述的索引创建方法,其特征在于,所述按照有数据整理需求的索引的顺序,调整所述数据表的数据存储顺序,包括:
如果所述数据表的已有索引中不存在有数据整理需求的索引,则按照所述待创建的有数据整理需求的索引的顺序,调整所述数据表数据的存储顺序;
如果所述数据表的已有索引中存在有数据整理需求的索引,则按照所述待创建的有数据整理需求的索引和所述已有索引中有数据整理需求的索引的多列顺序,调整所述数据表数据的存储顺序。
6.一种数据库系统,其特征在于,所述数据库系统为堆存储的数据库系统;所述数据库系统包含多个数据表,一张数据表包括一个或多个数据块或数据页,数据以记录的形式保存在所述数据块或所述数据页中;所述数据库系统包括请求接收模块、索引创建模块和数据调整模块,其中:
请求接收模块,用于接收为数据表创建索引的请求;
数据调整模块,用于基于所述请求,调整所述数据表的数据存储顺序;
索引创建模块,用于基于所述调整后的数据存储顺序,响应所述请求创建索引;
所述数据调整模块,用于按照有数据整理需求的索引的顺序,调整所述数据表的数据存储顺序。
7.如权利要求6所述的数据库系统,其特征在于,所述数据调整模块,用于基于所述请求,调整所述数据表的数据存储顺序,包括:如果所述请求中携带所述索引有数据整理需求的指示信息,则调整所述数据表的数据存储顺序;或者,如果所述请求中没有携带所述索引是否有数据整理需求的指示信息,且默认配置为所述数据表的索引均有数据整理需求,则调整所述数据表的数据存储顺序。
8.如权利要求7所述的数据库系统,其特征在于,所述索引创建模块,还用于在所述请求中携带所述索引有数据整理需求的指示信息时,将所述索引记录为有数据整理需求的索引。
9.如权利要求6所述的数据库系统,其特征在于,所述数据调整模块,适于通过以下方式按照有数据整理需求的索引的顺序,调整所述数据表的数据存储顺序:
如果所述数据表的已有索引中不存在有数据整理需求的索引,则按照所述待创建的有数据整理需求的索引的顺序,调整所述数据表数据的存储顺序;
如果所述数据表的已有索引中存在有数据整理需求的索引,则按照所述待创建的有数据整理需求的索引和所述已有索引中有数据整理需求的索引的多列顺序,调整所述数据表数据的存储顺序。
10.一种索引创建装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算程序时实现如权利要求1-5中任一所述的方法和处理。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-5中任一所述的方法和处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710862401.1A CN110019971B (zh) | 2017-09-21 | 2017-09-21 | 一种索引创建方法、装置及数据库系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710862401.1A CN110019971B (zh) | 2017-09-21 | 2017-09-21 | 一种索引创建方法、装置及数据库系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110019971A CN110019971A (zh) | 2019-07-16 |
CN110019971B true CN110019971B (zh) | 2023-05-26 |
Family
ID=67186342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710862401.1A Active CN110019971B (zh) | 2017-09-21 | 2017-09-21 | 一种索引创建方法、装置及数据库系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110019971B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110399377A (zh) * | 2019-08-30 | 2019-11-01 | 北京东软望海科技有限公司 | Sql的优化方法、装置、电子设备及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620604A (zh) * | 2008-07-04 | 2010-01-06 | 英业达股份有限公司 | 以自建索引查找语言学习数据的系统及其方法 |
CN103810212A (zh) * | 2012-11-14 | 2014-05-21 | 阿里巴巴集团控股有限公司 | 一种数据库索引的自动创建方法及系统 |
CN106354829A (zh) * | 2016-08-31 | 2017-01-25 | 天津南大通用数据技术股份有限公司 | 一种列存数据库的物化方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10235431B2 (en) * | 2016-01-29 | 2019-03-19 | Splunk Inc. | Optimizing index file sizes based on indexed data storage conditions |
-
2017
- 2017-09-21 CN CN201710862401.1A patent/CN110019971B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620604A (zh) * | 2008-07-04 | 2010-01-06 | 英业达股份有限公司 | 以自建索引查找语言学习数据的系统及其方法 |
CN103810212A (zh) * | 2012-11-14 | 2014-05-21 | 阿里巴巴集团控股有限公司 | 一种数据库索引的自动创建方法及系统 |
CN106354829A (zh) * | 2016-08-31 | 2017-01-25 | 天津南大通用数据技术股份有限公司 | 一种列存数据库的物化方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110019971A (zh) | 2019-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9953102B2 (en) | Creating NoSQL database index for semi-structured data | |
US20140101128A1 (en) | Estimating rows returned by recursive queries using fanout | |
US8812489B2 (en) | Swapping expected and candidate affinities in a query plan cache | |
CN106471501B (zh) | 数据查询的方法、数据对象的存储方法和数据系统 | |
US11288287B2 (en) | Methods and apparatus to partition a database | |
TW201415262A (zh) | 基於Lucene的倒排索引系統構建、資料處理方法及裝置 | |
CN110134335B (zh) | 一种基于键值对的rdf数据管理方法、装置及存储介质 | |
US11222015B2 (en) | Helper scan in a database management system | |
CN110928882B (zh) | 一种基于改进红黑树的内存数据库索引方法及系统 | |
US9471630B2 (en) | Efficient query processing on ordered views | |
US8694525B2 (en) | Systems and methods for performing index joins using auto generative queries | |
CN111680472A (zh) | 表格数据处理方法、装置、计算机设备及可读存储介质 | |
CN107609011B (zh) | 一种数据库记录的维护方法和装置 | |
CN114372064B (zh) | 数据处理装置、方法、计算机可读介质及处理器 | |
CN110046181B (zh) | 基于数据库分布式存储的数据路由的方法和装置 | |
CN108549666B (zh) | 一种数据表的排序方法、装置、设备及存储介质 | |
CN114238389A (zh) | 数据库查询优化方法、装置、电子设备、介质和程序产品 | |
CN110019971B (zh) | 一种索引创建方法、装置及数据库系统 | |
US20060230020A1 (en) | Improving Efficiency in processing queries directed to static data sets | |
US20200341678A1 (en) | Data storage method and data storage engine | |
CN110019192B (zh) | 数据库的检索方法及装置 | |
US20200042634A1 (en) | Methods and apparatus to partition a database | |
CN107451142B (zh) | 在数据库中写入和查询数据的方法与装置及其管理系统和计算机可读存储介质 | |
CN111221814A (zh) | 二级索引的构建方法、装置及设备 | |
CN115422194A (zh) | 一种用于数据库索引构建的方法与设备 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40010957 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |