本发明专利技术公开了动态索引创建方法、计算机设备及可读存储介质,属于数据库索引创建技术领域。本发明专利技术的动态索引创建方法适用为分区表创建索引,通过读取记录文件中最后一条数据,以提取最后一条数据的记录时间及相应的执行标识;根据当前时间、记录时间和执行标识识别最后一条数据对应的分区表是否为历史分区表;若分区表为历史分区表,采用第一预设规则根据记录时间创建与历史分区表关联的索引条目,直至完成对所有历史分区表的索引创建;若分区表为当前分区表,采用第二预设规则根据记录时间创建与当前分区表关联的索引条目,以避免长期占用系统和数据库资源。
【技术实现步骤摘要】
本专利技术涉及数据库索引创建,尤其涉及动态索引创建方法、计算机设备及可读存储介质。
技术介绍
1、在数据库中,尤其对于大量数据通常以表的形式存储,一般表是按小时分区的,因此,1天的表单被拆分成24张分区表。然而,采用条件查询数据时,查询速度慢,甚至导致系统查询崩溃。为了解决这个问题,可为表添加索引以便于数据查询。考虑到分区表是动态创建的(每个月创建下个月的表),且已安装的项目也存在大量历史分区表,当前小时的表也在不停的写入数据,目前的索引方法无法适应动态创建的分区表,创建索引占用大量磁盘空间,为数据动态写入分区表单造成影响。
技术实现思路
1、针对现有分区表查询速度慢,创建索引需占用较大的磁盘空间,影响数据动态写入分区表单的问题,,现提供一种旨在灵活创建索引,避免长期占用系统资源,避免数据动态写入对分区表单造成影响的动态索引创建方法、计算机设备及可读存储介质。
2、本专利技术提供了一种动态索引创建方法,用于为分区表创建索引,包括:
3、获取与所述分区表关联的记录文件中最后一条数据,提取所述最后一条数据的记录时间及相应的执行标识;
4、根据当前时间、所述记录时间和所述执行标识识别所述最后一条数据对应的分区表是否为历史分区表;
5、若所述分区表为历史分区表,采用第一预设规则根据所述记录时间创建与所述历史分区表关联的索引条目;
6、若所述分区表为当前分区表,采用第二预设规则根据所述记录时间创建与所述当前分区表关联的索引条目。p>7、优选的,所述记录文件采用升序排序的方式记录各个所述分区表的记录时间和各个分区表的执行标记;
8、所述执行标记包括历史循环标记和当次执行标记两种,所述历史循环标记与所述历史分区表对应,所述当次执行标记与所述当前分区表对应。
9、优选的,所述根据当前时间、所述记录时间和所述执行标识识别所述最后一条数据对应的分区表是否为历史分区表,包括:
10、判断所述记录时间是否存在,所述记录时间的格式为年月日时;
11、若存在所述记录时间,以时为单位将所述当前时间的前一小时的作为结束时间;
12、判断所述记录时间是否大于所述结束时间;
13、若所述记录时间大于所述结束时间,表示所述分区表为所述当前分区表;
14、若所述记录时间小于或等于所述结束时间,表示所述分区表为所述历史分区表。
15、优选的,若不存在所述记录时间,查询数据库中的所有分区表,按表名升序排序顺序,获取最小时间对应的分区表的记录时间,将所述记录时间存储于所述记录文件中,将与所述记录时间关联的执行标记设置为历史循环标记;
16、判断所述记录时间是否存在;
17、若不存在所述记录时间,则结束;
18、若存在所述记录时间,以时为单位将所述当前时间的前一小时的作为结束时间,判断所述记录时间是否大于所述结束时间。
19、优选的,所述第一预设规则包括:
20、以第一预设频率为周期,查询与所述记录文件关联的任务文件中是否有与所述记录时间关联的脚本数据,且相应执行标记为当次执行标记;
21、若所述任务文件中没与所述记录时间关联的脚本数据,且相应执行标记为历史循环标记,将所述记录时间转换为起始时间戳,将所述结束时间转换为结束时间戳;
22、判断所述起始时间戳是否小于或等于所述结束时间戳;
23、若所述起始时间戳小于或等于所述结束时间戳;
24、将所述起始时间戳转为预设格式,存入数组中;
25、将所述起始时间戳加1小时后,将所述起始时间戳转换为预设格式,作为下一条待创建索引条目的分区表的记录时间,将所述历史循环标记作为与所述记录时间关联的执行标记存入所述记录文件中,重复执行n次以获取所述数组中的至少n个数据的表名,根据所述表名创建索引条目;
26、其中,n为正整数。
27、优选的,若查询与所述记录文件关联的任务文件中有与所述记录时间关联的脚本数据且相应的执行标记为当次执行标记,所述分区表为当前分区表,采用第二预设规则根据所述记录时间创建与所述当前分区表关联的索引条目。
28、优选的,若所述起始时间戳大于所述结束时间戳,将与所述记录时间对应的执行标记设置为当次执行标记,采用第二预设规则根据所述记录时间创建与所述当前分区表关联的索引条目。
29、优选的,所述第二预设规则包括:
30、以第二预设频率为周期,查询与所述记录文件关联的任务文件中是否有与所述记录时间关联的脚本数据及相应的当次执行标记;若是,将所述记录时间转换为起始时间戳,将所述起始时间戳转为预设格式,存入数组中,将所述起始时间戳加1小时后,将所述起始时间戳转换为预设格式,作为下一条待创建索引条目的分区表的记录时间,将所述当次执行标记作为与所述记录时间关联的执行标记存入所述记录文件中,获取所述数组中数据的表名,根据所述表名创建索引条目。
31、优选的,所述分区表为至少一个类别的分区表单。
32、本专利技术还提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
33、本专利技术还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
34、上述技术方案的有益效果:
35、本技术方案中,本专利技术的动态索引创建方法适用为分区表创建索引,通过读取记录文件中最后一条数据,以提取最后一条数据的记录时间及相应的执行标识;根据当前时间、记录时间和执行标识识别最后一条数据对应的分区表是否为历史分区表;若分区表为历史分区表,采用第一预设规则根据记录时间创建与历史分区表关联的索引条目,直至完成对所有历史分区表的索引创建;若分区表为当前分区表,采用第二预设规则根据记录时间创建与当前分区表关联的索引条目,以避免长期占用系统和数据库资源,同时,索引创建到当前小时的前一小时,避免对当前小时动态写入数据的分区表影响。
本文档来自技高网...
【技术保护点】
1.一种动态索引创建方法,用于为分区表创建索引,其特征在于,包括:
2.根据权利要求1所述的动态索引创建方法,其特征在于,所述记录文件采用升序排序的方式记录各个所述分区表的记录时间和各个分区表的执行标记;
3.根据权利要求1所述的动态索引创建方法,其特征在于,所述根据当前时间、所述记录时间和所述执行标识识别所述最后一条数据对应的分区表是否为历史分区表,包括:
4.根据权利要求3所述的动态索引创建方法,其特征在于,若不存在所述记录时间,查询数据库中的所有分区表,按表名升序排序顺序,获取最小时间对应的分区表的记录时间,将所述记录时间存储于所述记录文件中,将与所述记录时间关联的执行标记设置为历史循环标记;
5.根据权利要求3所述的动态索引创建方法,其特征在于,所述第一预设规则包括:
6.根据权利要求5所述的动态索引创建方法,其特征在于,若查询与所述记录文件关联的任务文件中有与所述记录时间关联的脚本数据且相应的执行标记为当次执行标记,所述分区表为当前分区表,采用第二预设规则根据所述记录时间创建与所述当前分区表关联的索引条目。p>7.根据权利要求5所述的动态索引创建方法,其特征在于,若所述起始时间戳大于所述结束时间戳,将与所述记录时间对应的执行标记设置为当次执行标记,采用第二预设规则根据所述记录时间创建与所述当前分区表关联的索引条目。
8.根据权利要求1所述的动态索引创建方法,其特征在于,所述第二预设规则包括:
9.根据权利要求1所述的动态索引创建方法,其特征在于,所述分区表为至少一个类别的分区表单。
10.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现权利要求1至9任一项所述方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至9任一项所述方法的步骤。
...
【技术特征摘要】
1.一种动态索引创建方法,用于为分区表创建索引,其特征在于,包括:
2.根据权利要求1所述的动态索引创建方法,其特征在于,所述记录文件采用升序排序的方式记录各个所述分区表的记录时间和各个分区表的执行标记;
3.根据权利要求1所述的动态索引创建方法,其特征在于,所述根据当前时间、所述记录时间和所述执行标识识别所述最后一条数据对应的分区表是否为历史分区表,包括:
4.根据权利要求3所述的动态索引创建方法,其特征在于,若不存在所述记录时间,查询数据库中的所有分区表,按表名升序排序顺序,获取最小时间对应的分区表的记录时间,将所述记录时间存储于所述记录文件中,将与所述记录时间关联的执行标记设置为历史循环标记;
5.根据权利要求3所述的动态索引创建方法,其特征在于,所述第一预设规则包括:
6.根据权利要求5所述的动态索引创建方法,其特征在于,若查询与所述记录文件关联的任务文件中有与所述记录时间关联的脚本数据且相...
【专利技术属性】
技术研发人员:魏莹,丁轶,
申请(专利权)人:上海寰创通信科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。