CN110019190B - 创建索引的方法和装置 - Google Patents

创建索引的方法和装置 Download PDF

Info

Publication number
CN110019190B
CN110019190B CN201710860627.8A CN201710860627A CN110019190B CN 110019190 B CN110019190 B CN 110019190B CN 201710860627 A CN201710860627 A CN 201710860627A CN 110019190 B CN110019190 B CN 110019190B
Authority
CN
China
Prior art keywords
index
executed
statement
creating
indexes
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
Application number
CN201710860627.8A
Other languages
English (en)
Other versions
CN110019190A (zh
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 Cloud Computing Ltd
Original Assignee
Alibaba Cloud Computing 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 Cloud Computing Ltd filed Critical Alibaba Cloud Computing Ltd
Priority to CN201710860627.8A priority Critical patent/CN110019190B/zh
Publication of CN110019190A publication Critical patent/CN110019190A/zh
Application granted granted Critical
Publication of CN110019190B publication Critical patent/CN110019190B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/242Query formulation
    • G06F16/2433Query languages
    • 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/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation

Abstract

本申请公开了一种创建索引的方法和装置。其中,该方法包括:对接收到的创建索引请求进行解析,得到待执行语句;依据待执行语句,得到对应的索引候选集;依据预先获取的采样数据和索引候选集,得到目标索引。本申请解决了在创建索引过程中对人员要求高,易导致用户选择错误的索引,从而降低了数据搜索效率的技术问题。

Description

创建索引的方法和装置
技术领域
本申请涉及互联网技术应用领域,具体而言,涉及一种创建索引的方法和装置。
背景技术
随着计算机技术的发展,特别是互联网技术的普及,数据库的运用越来越广泛,在数据搜索上,通过数据库能够快速的获取用户所需的数据,在实现数据库数据搜索功能的过程中,数据库通过接收到的索引进行搜索。
在相关的技术中数据库一般支持的索引类型很多,比如多路搜索树btree,哈希hash,基因倒排索引(gene inverted index,简称gin),通用搜索树(Generalized SearchTree,简称gist)等,现在创建索引时,需要数据库管理员(Data base Administrator,简称DBA)提供指定索引的类型,对DBA能力要求很高,而对于大多数不熟悉数据库技术的用户,却选不好索引,甚至选择错误的索引,从而降低了数据搜索效率。
发明内容
本申请实施例提供了一种创建索引的方法和装置,以至少解决在创建索引过程中对人员要求高,易导致用户选择错误的索引,从而降低了数据搜索效率的技术问题。
根据本申请实施例的一个方面,提供了一种创建索引的方法,包括:对接收到的创建索引请求进行解析,得到待执行语句;依据待执行语句,得到对应的索引候选集;依据预先获取的采样数据和索引候选集,得到目标索引。
可选的,依据待执行语句,得到对应的索引候选集包括:依据待执行语句匹配对应的索引;将待执行语句对应的索引进行集合,得到索引候选集。
进一步地,可选的,依据待执行语句匹配对应的索引包括:依据多个过滤条件依次对待执行语句进行过滤,得到待执行语句在每个过滤条件过滤后的索引。
可选的,依据待执行语句匹配对应的索引包括:拆分待执行语句,得到待执行语句中的组成元素;依据多个过滤条件依次对组成元素进行过滤,得到组成元素在每个过滤条件过滤后的索引。
可选的,依据预先获取的采样数据和索引候选集,得到目标索引包括:依据预先获取的采样数据从索引候选集中获取候选索引,其中,采样数据为用户的业务数据;依据候选索引执行创建索引请求,得到目标索引。
进一步地,可选的,依据预先获取的采样数据从索引候选集中获取候选索引包括:依据索引候选集创建临时表;将预先获取的采样数据导入临时表,得到候选索引。
可选的,将预先获取的采样数据导入临时表之前,该方法还包括:获取用户的历史业务数据;从历史业务数据中进行采样,得到采样数据。
可选的,依据候选索引执行创建索引请求,得到目标索引包括:依据候选索引执行待执行语句,得到目标索引。
根据本申请实施例的另一方面,还提供了一种创建索引的方法,包括:根据接收到的创建索引请求进行解析,得到待执行语句;依据待执行语句,得到对应的索引候选集;根据索引候选集和预先获取的采样数据,得到候选索引;其中,采样数据为用户的业务数据;依据候选索引执行创建索引请求,得到目标索引。
可选的,依据待执行语句,得到对应的索引候选集包括:依据多个过滤条件依次对待执行语句进行过滤,得到待执行语句在每个过滤条件过滤后的索引;将待执行语句对应的索引进行集合,得到索引候选集。
根据本申请实施例的又一方面,还提供了一种创建索引的装置,包括:解析模块,用于对接收到的创建索引请求进行解析,得到待执行语句;获取模块,用于依据待执行语句,得到对应的索引候选集;创建模块,用于依据预先获取的采样数据和索引候选集,得到目标索引。
可选的,获取模块包括:匹配单元,用于依据待执行语句匹配对应的索引;第一获取单元,用于将待执行语句对应的索引进行集合,得到索引候选集。
可选的,创建模块包括:第二获取单元,用于依据预先获取的采样数据从索引候选集中获取候选索引,其中,采样数据为用户的业务数据;创建单元,用于依据候选索引执行创建索引请求,得到目标索引。
进一步地,可选的,第二获取单元包括:第一创建子单元,用于依据索引候选集创建临时表;第一获取子单元,用于将预先获取的采样数据导入临时表,得到候选索引。
可选的,该装置还包括:第二获取子单元,用于将预先获取的采样数据导入临时表之前,获取用户的历史业务数据;采样子单元,用于从历史业务数据中进行采样,得到采样数据。
可选的,创建单元包括:第二创建子单元,用于依据候选索引执行待执行语句,得到目标索引。
根据本申请实施例的再一方面,还提供了一种创建索引的装置,包括:解析模块,用于根据接收到的创建索引请求进行解析,得到待执行语句;第一获取模块,用于依据待执行语句,得到对应的索引候选集;第二获取模块,用于根据索引候选集和预先获取的采样数据,得到候选索引;其中,采样数据为用户的业务数据;创建模块,用于依据候选索引执行创建索引请求,得到目标索引。
可选的,第一获取模块包括:过滤单元,用于依据多个过滤条件依次对待执行语句进行过滤,得到待执行语句在每个过滤条件过滤后的索引;获取单元,用于将待执行语句对应的索引进行集合,得到索引候选集。
根据本申请另一实施例的一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述的创建索引的方法。
根据本申请另一实施例的一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述的创建索引的方法。
在本申请实施例中,使用采样数据和索引候选集得到候选索引,进而通过候选索引执行创建索引请求得到目标索引,达到了准确获取目标索引的目的,从而提升了数据搜索效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请实施例的一种创建索引的方法的计算机终端的硬件结构框图;
图2是根据本申请实施例一的创建索引的方法的流程图;
图3是根据本申请实施例二的创建索引的方法的流程图;
图4是根据本申请实施例二的一种创建索引的方法的流程图;
图5是根据本申请实施例三的创建索引的装置的结构示意图;
图6是根据本申请实施例四的创建索引的装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请涉及的技术名词:
DBA:数据库管理员(Data base Administrator);
btree,hash,gin,gist:索引类型;其中,btree为多路搜索树;hash为哈希;gin为基因倒排索引(gene inverted index,简称gin);gist为通用搜索树(Generalized SearchTree,简称gist);
结构化查询语言(Structured Query Language,简称SQL)。
实施例1
根据本申请实施例,还提供了一种创建索引的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本申请实施例的一种创建索引的方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的创建索引的方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的创建索引的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输模块106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
在上述运行环境下,本申请提供了如图2所示的创建索引的方法。图2是根据本申请实施例一的创建索引的方法的流程图。
步骤S202,对接收到的创建索引请求进行解析,得到待执行语句;
本申请上述步骤S202中,本申请提供的创建索引的方法以适用于结构化查询语言(Structured Query Language,简称SQL)为优选示例进行说明,在实现本申请提供的创建索引的方法的过程中:首先接收用户发送的创建索引请求,其中,该创建索引请求通过SQL语句实现,其中,该SQL语句中包括需要创建的索引对应的待执行语句。
步骤S204,依据待执行语句,得到对应的索引候选集;
基于步骤S202中得到的待执行语句,本申请上述步骤S204中,在得到待执行语句之后,通过数据库自身统计信息选择用户所需的索引,并依据得到的索引生成索引候选集。
步骤S206,依据预先获取的采样数据和索引候选集,得到目标索引。
基于步骤S204中的的索引候选集,本申请上述步骤S206中,在依据索引候选集和预先获取的采样数据,通过采样数据对索引后续集中的索引进行进一步地筛选,以用户实际的业务数据基于索引候选集生成更适合用户的索引,为了对用户提供最优的索引,通过将该索引执行用户设置的SQL,得到最优的索引(即,本申请实施例中提供的目标索引)。
综上,结合步骤S202至步骤S206可以得到,当用户需要创建索引时,通过以SQL语句的方式注入创建索引请求,由数据库对该SQL语句(即,本申请提供的待执行语句)进行分析,对该SQL依据预设顺序依次通过多个过滤条件对SQL语句进行过滤,得到SQL语句在每个过滤条件过滤后的索引,通过获取各个索引得到索引候选集,依据索引候选集得到临时表,该临时表包括数据库中各列与对应索引之间的关系,通过对用户表中的数据进行采样,将采样得到的数据导入所述临时表中得到初步满足用户的索引,进而将该索引执行用户设置的SQL语句,得到最优的索引。
在本申请实施例中,采用使用采样数据和索引候选集得到候选索引,进而通过候选索引执行创建索引请求得到目标索引的方式,通过对接收到的创建索引请求进行解析,得到待执行语句;依据待执行语句,得到对应的索引候选集;依据预先获取的采样数据和索引候选集,得到目标索引,达到了准确获取目标索引的目的,从而实现了提升数据搜索效率的技术效果,进而解决了在创建索引过程中对人员要求高,易导致用户选择错误的索引,从而降低了数据搜索效率的技术问题。
可选的,步骤S204中依据待执行语句,得到对应的索引候选集包括:
步骤S2041,依据待执行语句匹配对应的索引;
步骤S2042,将待执行语句对应的索引进行集合,得到索引候选集。
结合步骤S2041和步骤S2042,通过对待执行语句所属索引类型的匹配,得到至少一个索引,通过将至少一个索引进行集合,得到索引候选集。
具体的,在依据待执行语句匹配对应的索引的过程中可以通过两种实现方式完成:
方式一:依据多个过滤条件依次对待执行语句进行过滤。
进一步地,可选的,步骤S2041中的依据待执行语句匹配对应的索引包括:
步骤A,依据多个过滤条件依次对待执行语句进行过滤,得到待执行语句在每个过滤条件过滤后的索引。
具体的,通过设置多个过滤条件,在依次筛选的过程中分别对待执行语句进行索引类型匹配,在匹配的过程中得到对应该待执行语句的多个索引。
方式二:依据多个过滤条件依次对待执行语句中的组成元素进行过滤。
可选的,步骤S2041中的依据待执行语句匹配对应的索引包括:
步骤A’,拆分待执行语句,得到待执行语句中的组成元素;
步骤B’,依据多个过滤条件依次对组成元素进行过滤,得到组成元素在每个过滤条件过滤后的索引。
具体的,通过设置多个过滤条件,将待执行语句进行拆分,得到组成待执行语句的各个组成元素,在依次筛选的过程中分别对待执行语句中的组成元素进行索引类型匹配,通过对各个组成元素的匹配得到多个索引。
可选的,步骤S206中依据预先获取的采样数据和索引候选集,得到目标索引包括:
步骤S2061,依据预先获取的采样数据从索引候选集中获取候选索引,其中,采样数据为用户的业务数据;
步骤S2062,依据候选索引执行创建索引请求,得到目标索引。
具体的,结合步骤S2061和步骤S2062通过引入用户的业务数据,将用户的业务数据引入索引候选集中得到至少一个候选索引,并通过得到的至少一个候选索引在执行用户提出的创建索引请求的过程中得到目标索引,达到了提升了获取的目标索引的准确性,即,避免了数据库仅依据用户的创建索引请求片面的生成部分索引,而实际上不能完全实现用户对索引准确率的需求。
进一步地,可选的,步骤S2061中的依据预先获取的采样数据从索引候选集中获取候选索引包括:
步骤A,依据索引候选集创建临时表;
步骤B,将预先获取的采样数据导入临时表,得到候选索引。
具体的,临时表用于表示数据库中每列与每列对应的索引直接的关系,通过索引候选集,临时生成一个关系表,由于契合用户的数据需求,通过向临时表中导入采样数据,进一步地的对得到的索引进行筛选,提升了获取候选索引的准确率。
可选的,步骤S2061中步骤B中的将预先获取的采样数据导入临时表之前,本申请提供的创建索引的方法还包括:
步骤C,获取用户的历史业务数据;
步骤D,从历史业务数据中进行采样,得到采样数据。
具体的,在将预先获取的采样数据导入临时表之前,如果直接在用户表尝试创建索引可能会消耗大量时间(原因在于:数据量可能很大),本申请通过采样用户表的真实数据,但是如果用户表很小(比如小于10M),无需采样,直接提取所有的数据,将采样数据放到临时表中,执行用户设置的SQL(创建索引语法里面包含),执行计划获取最优的索引。即,通过部分采样,即保障了获取索引的准确性,还缩减了在创建过程中的时间,提升了创建效率。
可选的,步骤S2062中的依据候选索引执行创建索引请求,得到目标索引包括:
步骤A,依据候选索引执行待执行语句,得到目标索引。
具体的,以实际执行SQL语句的方式得到候选索引中的最优的索引,即,得到本申请提供的目标索引,并在得到目标索引之后录入用户表中,以达到智能选择创建索引的目的。
在本申请实施例中,使用采样数据和索引候选集得到候选索引,进而通过候选索引执行创建索引请求得到目标索引,达到了准确获取目标索引的目的,从而提升了数据搜索效率。
实施例2
本申请提供了如图3所示的创建索引的方法。图3是根据本申请实施例二的创建索引的方法的流程图。
根据本申请实施例的另一方面,还提供了一种创建索引的方法,包括:
步骤S302,根据接收到的创建索引请求进行解析,得到待执行语句;
步骤S304,依据待执行语句,得到对应的索引候选集;
步骤S306,根据索引候选集和预先获取的采样数据,得到候选索引;其中,采样数据为用户的业务数据;
步骤S308,依据候选索引执行创建索引请求,得到目标索引。
具体的,基于步骤S302至步骤S308,本申请提供的创建索引的方法中,当用户需要创建索引时,通过以SQL语句的方式注入创建索引请求,由数据库对该SQL语句(即,本申请提供的待执行语句)进行分析,对该SQL依据预设顺序依次通过多个过滤条件对SQL语句进行过滤,得到SQL语句在每个过滤条件过滤后的索引,通过获取各个索引得到索引候选集,依据索引候选集得到临时表,该临时表包括数据库中各列与对应索引之间的关系,通过对用户表中的数据进行采样,将采样得到的数据导入所述临时表中得到初步满足用户的索引,进而将该索引执行用户设置的SQL语句,得到最优的索引。
在本申请实施例中,采用使用采样数据和索引候选集得到候选索引,进而通过候选索引执行创建索引请求得到目标索引的方式,通过根据接收到的创建索引请求进行解析,得到待执行语句;依据待执行语句,得到对应的索引候选集;根据索引候选集和预先获取的采样数据,得到候选索引;其中,采样数据为用户的业务数据;依据候选索引执行创建索引请求,得到目标索引,达到了准确获取目标索引的目的,从而实现了提升数据搜索效率的技术效果,进而解决了在创建索引过程中对人员要求高,易导致用户选择错误的索引,从而降低了数据搜索效率的技术问题。
可选的,步骤S304中依据待执行语句,得到对应的索引候选集包括:
步骤S3041,依据多个过滤条件依次对待执行语句进行过滤,得到待执行语句在每个过滤条件过滤后的索引;
步骤S3042,将待执行语句对应的索引进行集合,得到索引候选集。
综上,图4是根据本申请实施例二的一种创建索引的方法的流程图,如图4所示,本申请提供的创建索引的方法具体如下:
本申请提供的创建索引的方法通过数据库智能选择创建合适索引,通过新增SQL语法:create index test_index on table test_table using(select*from test_tablewhere id=xxxx)包含用户指定的执行SQL;
通过数据库自身统计信息选择索引候选集。这个步骤(即图4所示的第一阶段)的目的是将明显不适合的索引排除掉,避免在第二阶段创建时及执行时消耗时间。这个阶段的关键是预设足够准确的规则,比如枚举类型合适gin索引,位置类型适合gist类型,字段值很大适合hash索引等等。
结合图4可知,在第一阶段,如果待执行语句中未找到对应的索引,则在索引候选集中添加btree索引。
以上仅以上述示例为例,仅以实现本申请提供的创建索引的方法为准,具体不做限定。
采样数据选择最优索引。通过第一阶段本申请提供的创建索引的方法可能有多个索引类型适合用户,如何从这些类型中选择最优索引是关键。本申请提供的创建索引的方法利用数据库执行计划的优势,在表上创建这些索引,让执行计划选出最优的索引。如果直接在用户表尝试创建索引可能会消耗大量时间(数据量可能很大),本申请提供的创建索引的方法通过采样用户表的真实数据,但是如果用户表很小(比如小于10M),无需采样,直接取所有的数据,将采样数据放到临时表中,执行用户设置的SQL(创建索引语法里面包含),执行计划获取最优的索引,并将最优索引创建在用户真实的表中,达到智能选择创建索引的目的。
本申请提供的创建索引的方法采用使用采样数据和索引候选集得到候选索引,进而通过候选索引执行创建索引请求得到目标索引的方式,达到了降低用户使用索引的门槛,防止用户误用索引,提高业务系统性能的效果。
在本申请实施例中,使用采样数据和索引候选集得到候选索引,进而通过候选索引执行创建索引请求得到目标索引,达到了准确获取目标索引的目的,从而提升了数据搜索效率。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的创建索引的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
实施例3
根据本申请实施例,还提供了一种用于实施上述创建索引的方法的装置,如图5所示,该装置包括:
图5是根据本申请实施例三的创建索引的装置的结构示意图。
如图5所示该创建索引的装置包括:解析模块52、获取模块54和创建模块56。
其中,解析模块52,用于对接收到的创建索引请求进行解析,得到待执行语句;获取模块54,用于依据待执行语句,得到对应的索引候选集;创建模块56,用于依据预先获取的采样数据和索引候选集,得到目标索引。
在本申请实施例中,采用使用采样数据和索引候选集得到候选索引,进而通过候选索引执行创建索引请求得到目标索引的方式,通过对接收到的创建索引请求进行解析,得到待执行语句;依据待执行语句,得到对应的索引候选集;依据预先获取的采样数据和索引候选集,得到目标索引,达到了准确获取目标索引的目的,从而实现了提升数据搜索效率的技术效果,进而解决了在创建索引过程中对人员要求高,易导致用户选择错误的索引,从而降低了数据搜索效率的技术问题。
此处需要说明的是,上述解析模块52、获取模块54和创建模块56对应于实施例一中的步骤S202至步骤S206,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的创建索引的方法中,可以通过软件实现,也可以通过硬件实现。
可选的,获取模块54包括:匹配单元,用于依据待执行语句匹配对应的索引;第一获取单元,用于将待执行语句对应的索引进行集合,得到索引候选集。
此处需要说明的是,上述匹配单元和第一获取单元对应于实施例一中的步骤S204中的步骤S2041和步骤S2042,两个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的创建索引的方法中,可以通过软件实现,也可以通过硬件实现。
可选的,创建模块56包括:第二获取单元,用于依据预先获取的采样数据从索引候选集中获取候选索引,其中,采样数据为用户的业务数据;创建单元,用于依据候选索引执行创建索引请求,得到目标索引。
此处需要说明的是,上述第二获取单元和创建单元对应于实施例一中的步骤S206中的步骤S2061和步骤S2062,两个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的创建索引的方法中,可以通过软件实现,也可以通过硬件实现。
进一步地,可选的,第二获取单元包括:第一创建子单元,用于依据索引候选集创建临时表;第一获取子单元,用于将预先获取的采样数据导入临时表,得到候选索引。
此处需要说明的是,上述第一创建子单元和第一获取子单元对应于实施例一中的步骤S2061中的步骤A和步骤B,两个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的创建索引的方法中,可以通过软件实现,也可以通过硬件实现。
可选的,本申请提供的创建索引的装置还包括:第二获取子单元,用于将预先获取的采样数据导入临时表之前,获取用户的历史业务数据;采样子单元,用于从历史业务数据中进行采样,得到采样数据。
此处需要说明的是,上述第二获取子单元和采样子单元对应于实施例一中的步骤C和步骤D,两个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的创建索引的方法中,可以通过软件实现,也可以通过硬件实现。
可选的,创建单元包括:第二创建子单元,用于依据候选索引执行待执行语句,得到目标索引。
此处需要说明的是,上述第二创建子单元对应于实施例一中的步骤S2062中的步骤A,该模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的创建索引的方法中,可以通过软件实现,也可以通过硬件实现。
实施例4
根据本申请实施例,还提供了一种用于实施上述创建索引的方法的装置,如图6所示,该装置包括:
图6是根据本申请实施例四的创建索引的装置的结构示意图。
如图6所示该创建索引的装置包括:解析模块62、第一获取模块64、第二获取模块66和创建模块68。
其中,解析模块62,用于根据接收到的创建索引请求进行解析,得到待执行语句;第一获取模块64,用于依据待执行语句,得到对应的索引候选集;第二获取模块66,用于根据索引候选集和预先获取的采样数据,得到候选索引;其中,采样数据为用户的业务数据;创建模块68,用于依据候选索引执行创建索引请求,得到目标索引。
在本申请实施例中,采用使用采样数据和索引候选集得到候选索引,进而通过候选索引执行创建索引请求得到目标索引的方式,通过根据接收到的创建索引请求进行解析,得到待执行语句;依据待执行语句,得到对应的索引候选集;根据索引候选集和预先获取的采样数据,得到候选索引;其中,采样数据为用户的业务数据;依据候选索引执行创建索引请求,得到目标索引,达到了准确获取目标索引的目的,从而实现了提升数据搜索效率的技术效果,进而解决了在创建索引过程中对人员要求高,易导致用户选择错误的索引,从而降低了数据搜索效率的技术问题。
此处需要说明的是,上述解析模块62、第一获取模块64、第二获取模块66和创建模块68对应于实施例二中的步骤S302至步骤S308,四个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例二所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例二提供的创建索引的方法中,可以通过软件实现,也可以通过硬件实现。
可选的,第一获取模块64包括:过滤单元,用于依据多个过滤条件依次对待执行语句进行过滤,得到待执行语句在每个过滤条件过滤后的索引;获取单元,用于将待执行语句对应的索引进行集合,得到索引候选集。
此处需要说明的是,上述过滤单元和获取单元对应于实施例二中的步骤S304中的步骤S3041和步骤S3042,两个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例二所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例二提供的创建索引的方法中,可以通过软件实现,也可以通过硬件实现。
实施例5
根据本申请另一实施例的一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述实施例1或2中的创建索引的方法。
实施例6
根据本申请另一实施例的一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述实施例1或2中的创建索引的方法。
实施例7
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的创建索引的方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:对接收到的创建索引请求进行解析,得到待执行语句;依据待执行语句,得到对应的索引候选集;依据预先获取的采样数据和索引候选集,得到目标索引。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:依据待执行语句,得到对应的索引候选集包括:依据待执行语句匹配对应的索引;将待执行语句对应的索引进行集合,得到索引候选集。
进一步地,可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:依据待执行语句匹配对应的索引包括:依据多个过滤条件依次对待执行语句进行过滤,得到待执行语句在每个过滤条件过滤后的索引。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:依据待执行语句匹配对应的索引包括:拆分待执行语句,得到待执行语句中的组成元素;依据多个过滤条件依次对组成元素进行过滤,得到组成元素在每个过滤条件过滤后的索引。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:依据预先获取的采样数据和索引候选集,得到目标索引包括:依据预先获取的采样数据从索引候选集中获取候选索引,其中,采样数据为用户的业务数据;依据候选索引执行创建索引请求,得到目标索引。
进一步地,可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:依据预先获取的采样数据从索引候选集中获取候选索引包括:依据索引候选集创建临时表;将预先获取的采样数据导入临时表,得到候选索引。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:将预先获取的采样数据导入临时表之前,方法还包括:获取用户的历史业务数据;从历史业务数据中进行采样,得到采样数据。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:依据候选索引执行创建索引请求,得到目标索引包括:依据候选索引执行待执行语句,得到目标索引。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (16)

1.一种创建索引的方法,其特征在于,包括:
对接收到的创建索引请求进行解析,得到待执行语句;
依据所述待执行语句,得到对应的索引候选集,其中,在得到所述待执行语句之后,通过数据库自身统计信息选择用户所需的索引,并依据得到的索引生成所述索引候选集;
依据预先获取的采样数据和所述索引候选集,得到目标索引;
其中,所述方法还包括:获取用户的历史业务数据;从所述历史业务数据中进行采样,得到所述采样数据。
2.根据权利要求1所述的方法,其特征在于,所述依据所述待执行语句,得到对应的索引候选集包括:
依据所述待执行语句匹配对应的索引;
将所述待执行语句对应的索引进行集合,得到所述索引候选集。
3.根据权利要求2所述的方法,其特征在于,所述依据所述待执行语句匹配对应的索引包括:
依据多个过滤条件依次对所述待执行语句进行过滤,得到所述待执行语句在每个过滤条件过滤后的索引。
4.根据权利要求2所述的方法,其特征在于,所述依据所述待执行语句匹配对应的索引包括:
拆分所述待执行语句,得到所述待执行语句中的组成元素;
依据多个过滤条件依次对所述组成元素进行过滤,得到所述组成元素在每个过滤条件过滤后的索引。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述依据预先获取的采样数据和所述索引候选集,得到目标索引包括:
依据预先获取的采样数据从所述索引候选集中获取候选索引,其中,所述采样数据为用户的业务数据;
依据所述候选索引执行所述创建索引请求,得到所述目标索引。
6.根据权利要求5所述的方法,其特征在于,所述依据预先获取的采样数据从所述索引候选集中获取候选索引包括:
依据所述索引候选集创建临时表;
将所述预先获取的采样数据导入所述临时表,得到所述候选索引。
7.根据权利要求5所述的方法,其特征在于,所述依据所述候选索引执行所述创建索引请求,得到目标索引包括:
依据所述候选索引执行所述待执行语句,得到所述目标索引。
8.一种创建索引的装置,其特征在于,包括:
解析模块,用于对接收到的创建索引请求进行解析,得到待执行语句;
获取模块,用于依据所述待执行语句,得到对应的索引候选集,其中,在得到所述待执行语句之后,通过数据库自身统计信息选择用户所需的索引,并依据得到的索引生成所述索引候选集;
创建模块,用于依据预先获取的采样数据和所述索引候选集,得到目标索引;
其中,所述装置还包括:第二获取子单元,用于获取用户的历史业务数据;采样子单元,用于从所述历史业务数据中进行采样,得到所述采样数据。
9.根据权利要求8所述的装置,其特征在于,所述获取模块包括:
匹配单元,用于依据所述待执行语句匹配对应的索引;
第一获取单元,用于将所述待执行语句对应的索引进行集合,得到所述索引候选集。
10.根据权利要求9所述的装置,其特征在于,所述匹配单元,还用于依据多个过滤条件依次对所述待执行语句进行过滤,得到所述待执行语句在每个过滤条件过滤后的索引。
11.根据权利要求9所述的装置,其特征在于,所述匹配单元,还用于拆分所述待执行语句,得到所述待执行语句中的组成元素;依据多个过滤条件依次对所述组成元素进行过滤,得到所述组成元素在每个过滤条件过滤后的索引。
12.根据权利要求8至10中任一项所述的装置,其特征在于,所述创建模块包括:
第二获取单元,用于依据预先获取的采样数据从所述索引候选集中获取候选索引,其中,所述采样数据为用户的业务数据;
创建单元,用于依据所述候选索引执行所述创建索引请求,得到所述目标索引。
13.根据权利要求12所述的装置,其特征在于,所述第二获取单元包括:
第一创建子单元,用于依据所述索引候选集创建临时表;
第一获取子单元,用于将所述预先获取的采样数据导入所述临时表,得到所述候选索引。
14.根据权利要求12所述的装置,其特征在于,所述创建单元包括:
第二创建子单元,用于依据所述候选索引执行所述待执行语句,得到所述目标索引。
15.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至7中任意一项所述的创建索引的方法。
16.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至7中任意一项所述的创建索引的方法。
CN201710860627.8A 2017-09-21 2017-09-21 创建索引的方法和装置 Active CN110019190B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710860627.8A CN110019190B (zh) 2017-09-21 2017-09-21 创建索引的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710860627.8A CN110019190B (zh) 2017-09-21 2017-09-21 创建索引的方法和装置

Publications (2)

Publication Number Publication Date
CN110019190A CN110019190A (zh) 2019-07-16
CN110019190B true CN110019190B (zh) 2023-05-30

Family

ID=67186329

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710860627.8A Active CN110019190B (zh) 2017-09-21 2017-09-21 创建索引的方法和装置

Country Status (1)

Country Link
CN (1) CN110019190B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7272589B1 (en) * 2000-11-01 2007-09-18 Oracle International Corporation Database index validation mechanism
CN105095255A (zh) * 2014-05-07 2015-11-25 中兴通讯股份有限公司 一种数据索引创建方法及装置
CN107016018A (zh) * 2015-10-23 2017-08-04 阿里巴巴集团控股有限公司 数据库索引创建方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8229920B2 (en) * 2007-08-31 2012-07-24 International Business Machines Corporation Index selection for XML database systems
CN103136226B (zh) * 2011-11-25 2017-11-17 深圳市腾讯计算机系统有限公司 一种搜索用户的方法与装置
CN107016025A (zh) * 2016-11-17 2017-08-04 阿里巴巴集团控股有限公司 一种非关系型数据库索引的建立方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7272589B1 (en) * 2000-11-01 2007-09-18 Oracle International Corporation Database index validation mechanism
CN105095255A (zh) * 2014-05-07 2015-11-25 中兴通讯股份有限公司 一种数据索引创建方法及装置
CN107016018A (zh) * 2015-10-23 2017-08-04 阿里巴巴集团控股有限公司 数据库索引创建方法及装置

Also Published As

Publication number Publication date
CN110019190A (zh) 2019-07-16

Similar Documents

Publication Publication Date Title
US20190370152A1 (en) Automatic intelligent cloud service testing tool
US20160299903A1 (en) Path analysis method and apparatus
CN111782635B (zh) 数据处理方法和装置、存储介质和电子装置
CN108664665A (zh) 数据格式转化方法、装置、设备及可读存储介质
CN106330520A (zh) 一种终端设备的特征信息的提取方法及装置
CN112671878B (zh) 一种区块链的信息订阅方法、装置、服务器和存储介质
CN114676678A (zh) 结构化查询语言数据的解析方法、装置和电子设备
CN114791927A (zh) 一种数据分析方法和装置
CN110019190B (zh) 创建索引的方法和装置
CN112667632B (zh) 一种元数据处理方法及装置
CN112182031A (zh) 数据查询方法及装置、存储介质、电子装置
CN112579422A (zh) 一种方案测试方法、装置、服务器及存储介质
CN116226082A (zh) 数据库模型的生成方法、装置、存储介质及电子设备
CN113505143A (zh) 语句类型的转换方法、装置、存储介质及电子装置
CN115438267A (zh) 基于大数据的画像分析处理方法及系统
CN114064601B (zh) 存储过程转换方法、装置、设备和存储介质
CN112632212A (zh) 一种待翻译词条的更新方法、装置、设备和介质
CN112035416A (zh) 数据血缘分析方法、装置、电子设备及存储介质
CN114281840A (zh) 查询语句的解析方法、装置以及存储介质
CN111563387A (zh) 语句相似度确定方法及装置、语句翻译方法及装置
CN111625749B (zh) 参会公司网站详情页信息提取方法、装置、设备及介质
CN112466307A (zh) 语音的回复方法和装置、存储介质、电子装置
CN111159461A (zh) 音频文件确定方法和装置、存储介质及电子装置
CN114925184A (zh) 问答对生成方法、装置及计算机可读存储介质
CN115730124A (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: 40010956

Country of ref document: HK

TA01 Transfer of patent application right

Effective date of registration: 20210906

Address after: Room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Alibaba (China) Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: ALIBABA GROUP HOLDING Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20211117

Address after: 310000 No. 12, Zhuantang science and technology economic block, Xihu District, Hangzhou City, Zhejiang Province

Applicant after: Aliyun Computing Co.,Ltd.

Address before: 310052 room 508, 5th floor, building 4, No. 699 Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant before: Alibaba (China) Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant