一种存储引擎中数据索引的方法以及相关装置制造方法及图纸

技术编号:24455846 阅读:24 留言:0更新日期:2020-06-10 15:31
本申请公开了一种存储引擎中数据索引的方法以及相关装置,通过获取指示数据来索引目标事务。根据目标事务确定第一存储引擎中的第一索引表;然后根据第一索引表确定在第二存储引擎中配置的至少一个第二索引表;进而从第二索引表中确定与第一存储引擎中的数据索引条件对应的索引数据。从而实现了跨存储引擎的数据索引过程,由于减少了新的存储引擎引入的开发复杂度,实现了多存储引擎的代码复用,提高了数据库的索引效率。

A method of data index in storage engine and related devices

【技术实现步骤摘要】
一种存储引擎中数据索引的方法以及相关装置
本申请涉及计算机
,尤其涉及一种存储引擎中数据索引的方法以及相关装置。
技术介绍
随着云技术的发展,越来越多的应用出现在人们生活中,而在云技术中,需要数据库的参与,以实现数据交互。数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。一般,可以采用MySQL这一支持多种存储引擎的数据库管理系统以适用于不同的应用场景中。其中,不同存储引擎对事务的支持能力可以不同。例如InnoDB存储引擎实现了完整的事务支持,也支持分布式事务的XA协议;而MyISAM存储引擎便于拓展;另外NEWDB引擎则支持单语句的事务;从而实现多种场景的数据索引过程。但是,在MySQL的插件式体系架构中,每个存储引擎的代码都是独立的,每开发一个新的存储引擎,都需要单独开发完整的一套数据存储和事务机制;然而这个开发过程复杂度高,且容易造成代码的冗余,影响数据库的索引效率。
技术实现思路
有鉴于此,本申请提供一种数据索引的方法,可以有效减少存储引擎应用过程的复杂度以及代码的冗余,提高数据索引过程的效率。本申请第一方面提供一种数据索引的方法,可以应用于终端设备中包含数据索引功能的系统或程序中,具体包括:获取目标事务,所述目标事务用于指示数据索引过程;根据所述目标事务确定第一存储引擎中的目标数据,所述目标数据包含于至少一个第一索引表中;根据所述第一索引表确定在第二存储引擎中配置的至少一个第二索引表,所述第二索引表为基于所述第一索引表增加行标识所得,所述行标识用于指示所述目标数据中的行数据,所述行数据与所述目标数据中的索引列相对应,所述索引列基于所述目标事务所得,所述第二存储引擎支持所述目标事务的执行;从所述第二索引表中确定与所述第一存储引擎中的数据索引条件对应的索引数据,所述索引数据包含于所述目标数据。本申请第二方面提供一种数据索引的装置,包括:获取单元,用于获取目标事务,所述目标事务用于指示数据索引过程;确定单元,用于根据所述目标事务确定第一存储引擎中的目标数据,所述目标数据包含于至少一个第一索引表中;映射单元,用于根据所述第一索引表确定在第二存储引擎中配置的至少一个第二索引表,所述第二索引表为基于所述第一索引表增加行标识所得,所述行标识用于指示所述目标数据中的行数据,所述行数据与所述目标数据中的索引列相对应,所述索引列基于所述目标事务所得,所述第二存储引擎支持所述目标事务的执行;索引单元,用于从所述第二索引表中确定与所述第一存储引擎中的数据索引条件对应的索引数据,所述索引数据包含于所述目标数据。本申请第三方面提供一种计算机设备,包括:存储器、处理器以及总线系统;所述存储器用于存储程序代码;所述处理器用于根据所述程序代码中的指令执行上述第一方面所述的数据索引的方法。本申请第四方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的数据索引的方法。从以上技术方案可以看出,本申请实施例具有以下优点:通过获取指示数据索引过程目标事务,并根据目标事务确定第一存储引擎中的目标数据,目标数据包含于至少一个第一索引表中;然后根据第一索引表确定在第二存储引擎中配置的至少一个第二索引表,第二索引表为基于第一索引表增加行标识所得,行标识用于指示目标数据中的行数据,行数据与目标数据中的索引列相对应,索引列基于目标事务所得,第二存储引擎支持目标事务的执行;进而从第二索引表中确定与第一存储引擎中的数据索引条件对应的索引数据。从而实现了跨存储引擎的数据索引过程,由于减少了新的存储引擎引入的开发复杂度,实现了多存储引擎的代码复用,提高了数据库的索引效率;进一步的通过对于第二存储引擎的功能设计使得第一存储引擎可以执行自身无法搭载的功能,进一步的提高了数据库的应用范围以及索引效率。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为数据索引系统运行的网络架构图;图2为本申请实施例提供的一种数据索引的流程架构图;图3为本申请实施例提供的一种数据索引的方法的流程图;图4为本申请实施例提供的一种索引表更新流程示意图;图5为本申请实施例提供的另一种数据索引的方法的流程图;图6为本申请实施例提供的一种数据插入操作流程示意图;图7为本申请实施例提供的一种数据恢复的方法的流程图;图8为本申请实施例提供的一种数据索引装置的结构示意图;图9为本申请实施例提供的另一种数据索引装置的结构示意图。具体实施方式本申请实施例提供了一种数据索引的方法以及相关装置,可以应用于终端设备中包含数据索引功能的系统或程序中,通过获取指示数据索引过程目标事务,并根据目标事务确定第一存储引擎中的目标数据,目标数据包含于至少一个第一索引表中;然后根据第一索引表确定在第二存储引擎中配置的至少一个第二索引表,第二索引表为基于第一索引表增加行标识所得,行标识用于指示目标数据中的行数据,行数据与目标数据中的索引列相对应,索引列基于目标事务所得,第二存储引擎支持目标事务的执行;进而从第二索引表中确定与第一存储引擎中的数据索引条件对应的索引数据。从而实现了跨存储引擎的数据索引过程,由于减少了新的存储引擎引入的开发复杂度,实现了多存储引擎的代码复用,提高了数据库的索引效率;进一步的通过对于第二存储引擎的功能设计使得第一存储引擎可以执行自身无法搭载的功能,进一步的提高了数据库的应用范围以及索引效率。本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。首先,对本申请实施例中可能出现的一些名词进行解释。MySQL:一个关系型数据库管理系统,它采用插件式体系结构,可同时支持多个存储引擎。存储引擎:负责数据库管理系统中数据存储和事务管理等功能,是数据库系统的核心模块。MySQL可以同时支持多个不同的存储引擎,以提供针对不同场景优化的数据存储和事务管理能力;常见的存储引擎有InnoDB、MyISAM等。事务(transaction):是访问并可能操作各种本文档来自技高网...

【技术保护点】
1.一种存储引擎中数据索引的方法,其特征在于,包括:/n获取目标事务,所述目标事务用于指示数据索引过程;/n根据所述目标事务确定第一存储引擎中的目标数据,所述目标数据包含于至少一个第一索引表中;/n根据所述第一索引表确定在第二存储引擎中配置的至少一个第二索引表,所述第二索引表为基于所述第一索引表增加行标识所得,所述行标识用于指示所述目标数据中的行数据,所述行数据与所述目标数据中的索引列相对应,所述索引列基于所述目标事务所得,所述第二存储引擎支持所述目标事务的执行;/n从所述第二索引表中确定与所述第一存储引擎中的数据索引条件对应的索引数据,所述索引数据包含于所述目标数据。/n

【技术特征摘要】
1.一种存储引擎中数据索引的方法,其特征在于,包括:
获取目标事务,所述目标事务用于指示数据索引过程;
根据所述目标事务确定第一存储引擎中的目标数据,所述目标数据包含于至少一个第一索引表中;
根据所述第一索引表确定在第二存储引擎中配置的至少一个第二索引表,所述第二索引表为基于所述第一索引表增加行标识所得,所述行标识用于指示所述目标数据中的行数据,所述行数据与所述目标数据中的索引列相对应,所述索引列基于所述目标事务所得,所述第二存储引擎支持所述目标事务的执行;
从所述第二索引表中确定与所述第一存储引擎中的数据索引条件对应的索引数据,所述索引数据包含于所述目标数据。


2.根据权利要求1所述的方法,其特征在于,所述从所述第二索引表中确定与所述第一存储引擎中的数据索引条件对应的索引数据,包括:
获取所述目标事务在所述第一存储引擎中的数据索引条件,以确定所述数据索引条件指示的行标识;
根据所述数据索引条件指示的行标识确定在所述第二索引表中对应的行标识,以得到所述行数据;
根据所述行数据确定对应的索引数据。


3.根据权利要求2所述的方法,其特征在于,所述数据索引条件包括目标索引值,所述根据所述操作指令对所述行数据进行索引,以得到对应的索引数据,包括:
根据所述目标索引值确定对应的第二索引表;
确定所述第二索引表中对应于所述目标索引值的行数据,以得到对应的索引数据。


4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述目标事务中的数据操纵信息,所述数据操纵信息用于指示数据的插入、更新或删除;
根据所述数据操纵信息对所述第二索引表进行更新。


5.根据权利要求4所述的方法,其特征在于,所述根据所述数据操纵信息对所述第二索引表进行更新,包括:
根据所述数据操纵信息确定所述第一索引表中的变化信息;
根据所述变化信息确定在所述第二索引表中对应的行标识;
基于所述行标识确定所述变化信息在所述第二索引表中的对应项,以对所述第二索引表进行更新。


6.根据权利要求5所述的方法,其特征在于,所述基于所述行标识确定所述变化信息在所述第二索引表中的对应项,以对所述第二索引表进行更新之后,所述方法还包括:
根据所述变化信息确定所述第一存储引擎对应的版本号,以在所述第二存储引擎中生成日志表;
确定所述日志表中相邻的所述第一存储引擎版本号的数据对应情况,以进行数据恢复。


7.根据权利要求6所述的方法,其特征在于,所述确定所述日志表中相邻的所述第一存储引擎版本号的数据对应情况,以进行数据恢复,包括:
确定所述变化信息对应的处理流程;
为所述处理流程设置至少一个故障检测点,所述故障检测点基于所述第一...

【专利技术属性】
技术研发人员:龙剑张文亮
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1