一种并行创建openGauss外部分区表分区索引的方法和系统技术方案

技术编号:41724150 阅读:35 留言:0更新日期:2024-06-19 12:48
本发明专利技术涉及本地索引创建技术领域,提供一种并行创建openGauss外部分区表分区索引的方法和系统,包括:获取外部分区表的分区列表,为分区列表中的每个分区创建对应的分区索引元数据;根据分区信息和分区索引元数据创建任务队列元素,根据创建的任务队列元素构建任务队列;为创建分区索引的子线程设置并行度,主线程根据设置的并行度将主事务信息和任务队列地址发送至每个子线程;子线程根据任务队列的地址并发地从任务队列中抢占获取任务队列元素,根据获取的任务队列元素创建对应的分区索引;主线程检测子线程的分区索引创建任务状态,根据检测的分区索引创建任务状态撤销分区索引创建或提交创建的分区索引。本发明专利技术可以提高创建分区索引的效率。

【技术实现步骤摘要】

本专利技术涉及本地索引创建,尤其涉及一种并行创建opengauss外部分区表分区索引的方法和系统。


技术介绍

1、openguass数据库支持分区表,对表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个表空间(物理文件上),这样查询数据时,只需要扫描相关的分区即可。分区表的索引分为本地索引和全局索引,本地索引是指为每个分区创建一个独立的索引,全局索引是指在整个表上创建索引,不限于任何特定的分区。

2、opengauss数据库支持分区表的本地索引,并且为了提高创建索引的效率,支持并行方式创建本地索引。但是其实质是非分区表并行创建索引的简单扩展,即顺序遍历每个分区,然后按照普通表并行创建索引的方式给每个分区创建索引,主要步骤包括:并行读取数据,并行排序生成中间结果,对中间排序结果进行归并,生成索引。在实际应用中,这种方式通过并行提高读取数据的效率、排序效率来提升创建索引的效率,但是当并行度增加到一定程度时,创建索引的效率反而会劣化,其原因包括:

3、1.受openguass事务一致性机制的限制,只有读取数据、排本文档来自技高网...

【技术保护点】

1.一种并行创建openGauss外部分区表分区索引的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的并行创建openGauss外部分区表分区索引的方法,其特征在于,获取外部分区表的分区列表,为分区列表中的每个分区创建对应的分区索引元数据,包括:通过主线程访问系统表,从系统表中获取外部分区表的分区列表,根据分区列表中的分区名称生成对应的分区索引名称,为分区对应的分区索引创建索引存储文件,将分区与分区索引的关系写入系统表中。

3.根据权利要求1所述的并行创建openGauss外部分区表分区索引的方法,其特征在于,根据分区信息和分区索引元数据创建任务队列元素...

【技术特征摘要】

1.一种并行创建opengauss外部分区表分区索引的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的并行创建opengauss外部分区表分区索引的方法,其特征在于,获取外部分区表的分区列表,为分区列表中的每个分区创建对应的分区索引元数据,包括:通过主线程访问系统表,从系统表中获取外部分区表的分区列表,根据分区列表中的分区名称生成对应的分区索引名称,为分区对应的分区索引创建索引存储文件,将分区与分区索引的关系写入系统表中。

3.根据权利要求1所述的并行创建opengauss外部分区表分区索引的方法,其特征在于,根据分区信息和分区索引元数据创建任务队列元素,根据创建的任务队列元素构建任务队列,包括:任务队列元素与外部分区表中的分区一一对应,所述任务队列元素包括分区的定义信息、分区数据的存储信息、分区索引的key定义信息、分区索引数据的存储信息。

4.根据权利要求1所述的并行创建opengauss外部分区表分区索引的方法,其特征在于,为创建分区索引的子线程设置并行度,主线程根据设置的并行度将主事务信息和任务队列地址发送至每个子线程,包括:

5.根据权利要求4所述的并行创建opengauss外部分区表分区索引的方法,其特征在于,主事务的事务信息包括事务id、事务快照和事务命令id。

6.根据权利要求1所述的并行创建opengauss外部分区表分区索引的方法,其特征在于,子线程根据任务队列的地址并发地从任务队列中抢占获取任务队列元素,根据获取的任务队列元素创建对应的分区索引,包括:子线程根据分区的定义信息和分区数据的存储信息读取分区数据,根据分区索引的key定义信息生成索引数据,对生成的索引数据进行排序,根据分区索引数据的存储信息将排序后的索引数据写入至索引存储文件。

7.根据权利要求1所述的并行创建op...

【专利技术属性】
技术研发人员:那海涛何小栋
申请(专利权)人:北京海量数据技术股份有限公司
类型:发明
国别省市:

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

1