一种PG数据库的自动化表分区方法及相关装置制造方法及图纸

技术编号:26259245 阅读:34 留言:0更新日期:2020-11-06 17:53
本发明专利技术公开了一种PG数据库的自动化表分区方法,包括获取PG数据库分区指令;根据PG数据库分区指令获取PG数据库的版本号;当版本号低于V10时,下载并安装pathman插件;调用pathman插件对PG数据库进行表分区;当版本号不低于V10时,通过PG数据库预设的分区功能模块对PG数据库进行表分区。当PG数据库的版本低于V10时,会自动下载安装pathman插件,并基于pathman插件完成PG数据库的表分区;当PG数据库的版本不低于V10时,会基于PG数据库自带的分区功能模块完成PG数据库的表分区。本发明专利技术还提供了一种装置、设备以及一种存储介质,同样具有上述有益效果。

【技术实现步骤摘要】
一种PG数据库的自动化表分区方法及相关装置
本专利技术涉及数据库
,特别是涉及一种PG数据库的自动化表分区方法、一种PG数据库的自动化表分区装置、一种PG数据库的自动化表分区设备以及一种计算机可读存储介质。
技术介绍
PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),通常也称为FG数据库,是一款非常优秀的开源数据库,有丰富的的功能,在功能上是全面超越MySQL的一个开源数据库,在性能上也不比MysQL差,同时PostgreSQL与Oracle一样,都是进程架构,能更好的发挥出多CPU的性能。随着PG数据库的使用越来越普通,对该数据库的优化工作也在不断地发展中。其中对分区表设置就是数据库优化一个重要方面。由于PG数据库的不同版本对表分区的实现有着很大差别。PGV8.X以及现在使用最为普遍的PGV9.X版本,均没有实现内置分区,在表分区的实现上较为困难。PGV10.X以及上版本对表分区的实现愈加完善起来。目前在对PG数据库的测试以及使用中,还是从事手动创建表分区。在现有技术中,目前对PG数据库表分区的创建,是根据不同数据库版本,手动创建表分区。对于PGV10.X以下版本,按照数据库本身支持的表分区创建,即首先以继承表的方式创建子表的方式实现分区;再通过创建触发器实现数据分发,从而实现向主表插入数据,便可以自动分发到子分区表中。对于PGV10.X及以上版本,因为数据库本身实现了对内置分区的支持,所以不需要创建触发器来实现数据分发,直接创建分区主表,然后再创建分区表即可。而在现有技术中,手动进行表分区,V10以下版本表分区操作繁琐,耗时长,而且优化后性能提升不明显;V10以上版本,虽然实现了内置表分区,相较于低版本的数据库而言,操作简化,但是当进行数据库测试调优时,频繁操作数据库,逐条手动完成分区表的创建也非常耗工时。效率低下。所以如何能自动识别数据库不同版本并自动完成表分区的创建是本领域技术人员急需解决的问题。
技术实现思路
本专利技术的目的是提供一种PG数据库的自动化表分区方法,针对PG数据库不同版本均可以完成自动的表分区;本专利技术的另一目的在于提供一种种PG数据库的自动化表分区装置、一种PG数据库的自动化表分区设备以及一种计算机可读存储介质,针对PG数据库不同版本均可以完成自动的表分区。为解决上述技术问题,本专利技术提供一种PG数据库的自动化表分区方法,包括:获取PG数据库分区指令;根据所述PG数据库分区指令获取PG数据库的版本号;当所述版本号低于V10时,下载并安装pathman插件;调用所述pathman插件对所述PG数据库进行表分区;当所述版本号不低于V10时,通过所述PG数据库预设的分区功能模块对所述PG数据库进行表分区。可选的,在所述获取PG数据库分区指令之前,还包括:获取PG数据库的安装完成信息;根据所述安装完成信息建立所述PG数据库的主表。可选的,所述获取PG数据库分区指令包括:获取对应所述主表中目标主表的选取指令;根据所述选取指令生成对应所述目标主表的PG数据库分区指令。可选的,所述调用所述pathman插件对所述PG数据库进行表分区包括:获取子分区表的配置信息;调用所述pathman插件,建立对应所述配置信息的子分区表。可选的,所述当所述版本号不低于V10时,通过所述PG数据库预设的分区功能模块对所述PG数据库进行表分区包括:当所述版本号不低于V10时,获取子分区表的配置信息;调用所述PG数据库预设的分区功能模块,建立对应所述配置信息的子分区表。本专利技术还提供了一种PG数据库的自动化表分区装置,包括:指令获取模块:用于获取PG数据库分区指令;版本号获取模块:用于根据所述PG数据库分区指令获取PG数据库的版本号;pathman插件模块:当所述版本号低于V10时,下载并安装pathman插件;低版本分区模块:用于调用所述pathman插件对所述PG数据库进行表分区;高版本分区模块:用于当所述版本号不低于V10时,通过所述PG数据库预设的分区功能模块对所述PG数据库进行表分区。可选的,还包括:PG数据库模块:用于获取PG数据库的安装完成信息;主表模块:用于根据所述安装完成信息建立所述PG数据库的主表。可选的,所述指令获取模块包括:选取指令单元:用于获取对应所述主表中目标主表的选取指令;指令获取单元:用于根据所述选取指令生成对应所述目标主表的PG数据库分区指令。本专利技术还提供了一种PG数据库的自动化表分区设备,所述设备包括:存储器:用于存储计算机程序;处理器:用于执行所述计算机程序时实现如上述任一项所述PG数据库的自动化表分区方法的步骤。本专利技术还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述PG数据库的自动化表分区方法的步骤。本专利技术所提供的一种PG数据库的自动化表分区方法,包括获取PG数据库分区指令;根据PG数据库分区指令获取PG数据库的版本号;当版本号低于V10时,下载并安装pathman插件;调用pathman插件对PG数据库进行表分区;当版本号不低于V10时,通过PG数据库预设的分区功能模块对PG数据库进行表分区。在对PG数据库进行分区时,首先会根据PG数据库的版本号判断PG数据库是V10以下版本还是V10以上版本。当PG数据库的版本低于V10时,会自动下载安装pathman插件,并基于pathman插件完成PG数据库的表分区;当PG数据库的版本不低于V10时,会基于PG数据库自带的分区功能模块完成PG数据库的表分区,从而实现针对PG数据库不同版本均可以完成自动化的表分区。本专利技术还提供了一种PG数据库的自动化表分区装置、一种PG数据库的自动化表分区设备以及一种计算机可读存储介质,同样具有上述有益效果,在此不再进行赘述。附图说明为了更清楚的说明本专利技术实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例所提供的一种PG数据库的自动化表分区方法的流程图;图2为本专利技术实施例所提供的一种具体的PG数据库的自动化表分区方法的流程图;图3为本专利技术实施例所提供的一种PG数据库的自动化表分区装置的结构框图;图4为本专利技术实施例所提供的一种PG数据库的自动化表分区设备的结构框图。具体实施方式本专利技术的核心是提供一种PG数据库的自动化表分区方法。在现有技术中,目前对PG数据库表分区的创建,是根据不同数据库版本,手动创建表分区。对于PGV10.X以下版本,按照数据库本本文档来自技高网
...

【技术保护点】
1.一种PG数据库的自动化表分区方法,其特征在于,包括:/n获取PG数据库分区指令;/n根据所述PG数据库分区指令获取PG数据库的版本号;/n当所述版本号低于V10时,下载并安装pathman插件;/n调用所述pathman插件对所述PG数据库进行表分区;/n当所述版本号不低于V10时,通过所述PG数据库预设的分区功能模块对所述PG数据库进行表分区。/n

【技术特征摘要】
1.一种PG数据库的自动化表分区方法,其特征在于,包括:
获取PG数据库分区指令;
根据所述PG数据库分区指令获取PG数据库的版本号;
当所述版本号低于V10时,下载并安装pathman插件;
调用所述pathman插件对所述PG数据库进行表分区;
当所述版本号不低于V10时,通过所述PG数据库预设的分区功能模块对所述PG数据库进行表分区。


2.根据权利要求1所述的方法,其特征在于,在所述获取PG数据库分区指令之前,还包括:
获取PG数据库的安装完成信息;
根据所述安装完成信息建立所述PG数据库的主表。


3.根据权利要求2所述的方法,其特征在于,所述获取PG数据库分区指令包括:
获取对应所述主表中目标主表的选取指令;
根据所述选取指令生成对应所述目标主表的PG数据库分区指令。


4.根据权利要求3所述的方法,其特征在于,所述调用所述pathman插件对所述PG数据库进行表分区包括:
获取子分区表的配置信息;
调用所述pathman插件,建立对应所述配置信息的子分区表。


5.根据权利要求3所述的方法,其特征在于,所述当所述版本号不低于V10时,通过所述PG数据库预设的分区功能模块对所述PG数据库进行表分区包括:
当所述版本号不低于V10时,获取子分区表的配置信息;
调用所述PG数据库预设的分区功能模块,建立对应所述配置信息的子分区表。


6...

【专利技术属性】
技术研发人员:孙志云
申请(专利权)人:浪潮商用机器有限公司
类型:发明
国别省市:山东;37

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

1