索引重建方法、装置、设备及介质制造方法及图纸

技术编号:32859122 阅读:24 留言:0更新日期:2022-03-30 19:35
本公开提供了一种应用于数据库系统的索引重建方法,可用于金融领域。其中,所述数据库系统包括数据服务和索引服务,所述数据服务和所述索引服务分别用于存储和管理所述数据库系统的原始数据和索引数据。所述方法包括:当涉及存量数据的索引数据结构的变更时,从所述数据服务中读取所述存量数据;以及根据变更后的索引数据结构在所述索引服务中重建所述存量数据的索引;其中,在重建所述存量数据的索引的过程中,实时更新并控制所述存量数据的索引的重建进度。本公开还提供了一种应用于数据库系统的索引重建装置、设备、存储介质和程序产品。产品。产品。

【技术实现步骤摘要】
索引重建方法、装置、设备及介质


[0001]本公开涉及大数据领域,更具体地涉及一种应用于数据库系统的索引重建方法、装置、设备、介质和程序产品。

技术介绍

[0002]索引是数据库系统用于条件查询(where语句)而存储的元数据,可以令数据库服务器以比没有索引快得多的速度查找和取回特定的数据记录。相关技术中,通常会将索引和数据存放在一起,即相同的物理机上。当通过数据库模式定义语言(Data Definition Language,DDL)操作变更索引的数据结构时,将触发索引重建。由于索引和数据存放在一起,索引重建期间无法控制重建任务的资源使用和启停,这会导致索引重建期间数据库系统性能受到大幅影响。

技术实现思路

[0003]鉴于上述问题,本公开提供了对可以索引重建任务进行实时更新和控制的应用于数据库系统的索引重建方法、装置、设备、介质和程序产品。
[0004]本公开实施例的第一方面,提供了一种应用于数据库系统的索引重建方法,其中,所述数据库系统包括数据服务和索引服务,所述数据服务和所述索引服务分别用于存储和管理所述数据库系统的原始数据和索引数据。所述方法包括:当涉及存量数据的索引数据结构的变更时,从所述数据服务中读取所述存量数据;以及根据变更后的索引数据结构在所述索引服务中重建所述存量数据的索引;其中,在重建所述存量数据的索引的过程中,实时更新并控制所述存量数据的索引的重建进度。
[0005]根据本公开的实施例,所述从所述数据服务中读取所述存量数据还包括:通过至少一次扫描来读取所述存量数据,其中,在每次扫描时按照申请到的本次扫描的数据量来定量读取数据。
[0006]根据本公开的实施例,所述从所述数据服务中读取所述存量数据还包括:在每次扫描之前申请所述本次扫描的数据量。
[0007]根据本公开的实施例,所述根据变更后的索引数据结构在所述索引服务中重建所述存量数据的索引还包括:在根据变更后的索引数据结构在所述索引服务中重建任意一个主键对应的索引之前,向所述索引服务发起对所述主键对应的索引的持有锁;其中,所述持有锁用于阻塞所述数据服务向所述索引服务发起向所述主键对应的索引中写入数据的请求;以及在所述主键对应的索引重建完成后,释放所述持有锁。
[0008]根据本公开的实施例,其中,所述实时更新所述存量数据的索引的重建进度包括:在任意一个主键对应的索引重建完成后,将所述重建进度更新为所述主键的主键名。
[0009]根据本公开的实施例,所述控制所述存量数据的索引的重建进度包括:在重建所述存量数据的索引的过程中,当接收到暂停或恢复重建所述存量数据的索引的指令时,暂停或恢复对所述存量数据的索引的重建。
[0010]根据本公开的实施例,所述恢复对所述存量数据的索引的重建包括:从所述重建进度中显示的主键之后的主键对应的索引开始恢复重建。
[0011]本公开实施例的另一方面,提供了一种应用于数据库系统的索引重建装置。所述数据库系统包括数据服务和索引服务,所述数据服务和所述索引服务分别用于存储和管理所述数据库系统的原始数据和索引数据。所述装置包括扫描模块、重建模块和控制模块。扫描模块包括至少一个扫描线程,用于当涉及存量数据的索引数据结构的变更时,通过所述至少一个扫描线程从所述数据服务中读取所述存量数据。
[0012]重建模块包括至少一个重建线程,用于通过所述至少一个重建线程,根据变更后的索引数据结构在所述索引服务中重建所述存量数据的索引。控制模块包括控制线程,用于在重建所述存量数据的索引的过程中,通过所述控制线程实时更新并控制所述存量数据的索引的重建进度。
[0013]根据本公开的实施例,所述装置还包括资源限速器。所述资源限速器用于根据所述控制线程的配置设定当前允许的扫描数据量。其中,每个所述扫描线程在扫描所述数据服务之前,向所述资源限速器申请本次扫描的数据量,以及每个所述扫描线程按照申请到的所述本次扫描的数据量对所述数据服务进行一次扫描。
[0014]根据本公开的实施例,所述重建模块还用于在每个所述重建线程在所述索引服务中重建任意一个主键对应的索引之前,通过所述重建线程向所述索引服务发起对所述主键对应的索引的持有锁;其中,所述持有锁用于阻塞所述数据服务向所述索引服务发起向所述主键对应的索引中写入数据的请求;以及在所述主键对应的索引重建完成后,所述重建线程释放所述持有锁。
[0015]根据本公开的实施例,所述控制模块还用于在任意一个主键对应的索引重建完成后,通过所述控制线程将所述重建进度更新为所述主键的主键名。
[0016]根据本公开的实施例,所述控制模块还用于在重建所述存量数据的索引的过程中,当接收到暂停或恢复重建所述存量数据的索引的指令时,通过所述控制线程暂停或恢复对所述存量数据的索引的重建。
[0017]本公开的第三方面,提供了一种电子设备。所述电子设备包括一个或多个处理器、以及一个或多个存储器。所述一个或多个存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述的索引重建方法。
[0018]本公开的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述的索引重建方法。
[0019]本公开的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的索引重建方法。
附图说明
[0020]通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
[0021]图1示意性示出了根据本公开实施例的索引重建方法、装置、设备、介质和程序产品的系统架构;
[0022]图2示意性示出了根据本公开实施例的数据服务中存储的原始数据和索引服务中存储的索引数据的数据结构示意图;
[0023]图3示意性示出了根据本公开实施例的索引重建方法的流程图;
[0024]图4示意性示出了根据本公开实施例的索引重建方法中重建存量数据的索引的操作流程;
[0025]图5示意性示出了根据本公开实施例的索引重建方法中实时更新和控制索引重建进度的操作流程;
[0026]图6示意性示出了根据本公开实施例的索引重建服务的框架图;
[0027]图7示意性示出了根据本公开实施例的索引重建装置的框图;以及
[0028]图8示意性示出了适于实现根据本公开实施例的索引重建方法的电子设备的方框图。
具体实施方式
[0029]以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
[0030]在此使用的术语仅仅是为了描述具体实施例,而并非本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用于数据库系统的索引重建方法,其中,所述数据库系统包括数据服务和索引服务,所述数据服务和所述索引服务分别用于存储和管理所述数据库系统的原始数据和索引数据,其中,所述方法包括:当涉及存量数据的索引数据结构的变更时,从所述数据服务中读取所述存量数据;以及根据变更后的索引数据结构在所述索引服务中重建所述存量数据的索引;其中,在重建所述存量数据的索引的过程中,实时更新并控制所述存量数据的索引的重建进度。2.根据权利要求1所述的方法,其中,所述从所述数据服务中读取所述存量数据还包括:通过至少一次扫描来读取所述存量数据,其中,在每次扫描时按照申请到的本次扫描的数据量来定量读取数据。3.根据权利要求2所述的方法,其中,所述从所述数据服务中读取所述存量数据还包括:在每次扫描之前申请所述本次扫描的数据量。4.根据权利要求1所述的方法,其中,所述根据变更后的索引数据结构在所述索引服务中重建所述存量数据的索引还包括:在根据变更后的索引数据结构在所述索引服务中重建任意一个主键对应的索引之前,向所述索引服务发起对所述主键对应的索引的持有锁;其中,所述持有锁用于阻塞所述数据服务向所述索引服务发起向所述主键对应的索引中写入数据的请求;以及在所述主键对应的索引重建完成后,释放所述持有锁。5.根据权利要求1所述的方法,其中,所述实时更新所述存量数据的索引的重建进度包括:在任意一个主键对应的索引重建完成后,将所述重建进度更新为所述主键的主键名。6.根据权利要求5所述的方法,其中,所述控制所述存量数据的索引的重建进度包括:在重建所述存量数据的索引的过程中,当接收到暂停或恢复重建所述存量数据的索引的指令时,暂停或恢复对所述存量数据的索引的重建。7...

【专利技术属性】
技术研发人员:赵鑫王炳辉
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

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

1