根据日志分析自动创建数据库索引的方法及系统的制作方法_2

文档序号:9326937阅读:来源:国知局
引列名生成模块4根据计算模块3计算出的次数占比生成索引列名并通过所以重建模块根据索引列名创建数据库索引,实现对数据库自动创建最佳的索引,并进行动态更新。
[0052]进一步的,所述根据日志分析自动创建数据库索引的系统还包括:设置模块6,用于设置预设时间段以及预设时段。
[0053]进一步的,所述设置模块6包括:
[0054]第一统计模块61,用于统计预设时间段内数据库的访问量;
[0055]第一设置模块62,用于设置数据库的访问量最低的时段为预设时段。
[0056]从上述描述可知,通过设置数据库的访问量最低的时段为预设时段,从而在数据库访问量最低的时段创建数据库索引,不影响用户正常访问数据库。
[0057]请参照图1,本发明的实施例一为:
[0058]—种根据日志分析自动创建数据库索引的方法,包括:
[0059]S1、创建数据库日志,记录对数据表进行的数据库操作,所述数据库操作包括查询、插入及修改;
[0060]S2、统计一天内数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数;
[0061]S3、根据数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数计算查询、插入、修改的次数占比;
[0062]S4、根据查询、插入以及修改的次数占比生成索引列名;具体为:对查询次数占比高于50%的列创建索引列名或者保存已有的索引列名;对插入或修改次数占比高于50%的列不创建索引列名或者删除已有的索引列名;
[0063]S5、在一天内数据库访问量最低的时段根据索引列名创建数据库索引。
[0064]例如,对一张10*3的数据表创建索引,创建日志记录,记录一天内对这张数据表进行的数据库操作,比如对第一行第二列进行查询,第五行第二列进行插入,第三行第一列进行修改,等等。统计每一列的查询、插入及修改次数以及次数占比,比如第一列查询占比70 %,第二列查询占比85 %,第三列插入或修改占比60 %,则为第一列和第二列创建索引列名,第三列不创建索引列名,如果凌晨时段对该数据表基本上不访问,则在凌晨时段根据生成的索引列名为该数据表创建索引。
[0065]如果该数据表已经有索引,而第一列查询占比70 %,第二列查询占比85 %,第三列插入或修改占比60%,则保存原第一列和第二列的索引列名,删除原第三列的索引列名,根据新的索引列名为该数据表创建索引。
[0066]请参照图2,本发明的实施例二为:
[0067]—种根据日志分析自动创建数据库索引的系统,包括:
[0068]设置模块6,用于设置预设时间段以及预设时段;所述设置模块6包括:第一统计模块61,用于统计预设时间段内数据库的访问量;第一设置模块62,用于设置数据库的访问量最低的时段为预设时段。
[0069]创建模块1,用于创建数据库日志,记录对数据表进行的数据库操作,所述数据库操作包括查询、插入及修改;
[0070]统计模块2,用于统计预设时间段内数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数;
[0071]计算模块3,用于根据数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数计算查询、插入、修改的次数占比;
[0072]索引列名生成模块4,用于根据查询、插入以及修改的次数占比生成索引列名;
[0073]索引创建模块5,用于在预设时段内根据索引列名创建数据库索引。
[0074]综上所述,本发明提供的根据日志分析自动创建数据库索引的方法及系统,通过设置模块设置预设时间段和预设时段,创建模块创建数据库日志,从而能够记录对数据表中每一项内容的数据库操作,通过统计模块能够统计出预设时间段内对数据表每一列查询、插入、修改的次数,进而通过计算模块计算出每一列查询、插入、修改的次数占比,由于查询时利用索引可以提高查询速度,而插入和修改时利用索引则需要对索引进行修改降低了性能,因此根据查询、插入及修改的次数占比即可判断此列是否需要创建索引,因而通过索引列名生成模块根据查询、插入以及修改的次数占比生成索引列名;再通过索引创建模块在预设时段内根据索引列名创建数据库索引,既不会影响用户访问数据库,又自动创建和更新了索引。
[0075]以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
【主权项】
1.一种根据日志分析自动创建数据库索引的方法,其特征在于,包括: 创建数据库日志,记录对数据表进行的数据库操作,所述数据库操作包括查询、插入及修改; 统计预设时间段内数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数; 根据数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数计算查询、插入、修改的次数占比; 根据查询、插入以及修改的次数占比生成索引列名; 在预设时段内根据索引列名创建数据库索引。2.根据权利要求1所述的根据日志分析自动创建数据库索引的方法,其特征在于,所述“根据查询、插入以及修改的次数占比生成索引列名”具体为: 对查询次数占比高于50%的列创建索引列名; 对插入或修改次数占比高于50 %的列不创建索引列名。3.根据权利要求1所述的根据日志分析自动创建数据库索引的方法,其特征在于,所述“根据查询、插入以及修改的次数占比生成索引列名”具体为: 对查询次数占比高于50%的列保存索引列名; 对插入或修改次数占比高于50 %的列删除索引列名。4.根据权利要求1所述的根据日志分析自动创建数据库索引的方法,其特征在于,所述预设时间段为一天。5.根据权利要求1所述的根据日志分析自动创建数据库索引的方法,其特征在于,所述预设时段为预设时间段内数据库访问量最低的时段。6.一种根据日志分析自动创建数据库索引的系统,其特征在于,包括: 创建模块,用于创建数据库日志,记录对数据表进行的数据库操作,所述数据库操作包括查询、插入及修改; 统计模块,用于统计预设时间段内数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数; 计算模块,用于根据数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数计算查询、插入、修改的次数占比; 索引列名生成模块,用于根据查询、插入以及修改的次数占比生成索引列名; 索引创建模块,用于在预设时段内根据索引列名创建数据库索引。7.根据权利要求6所述的根据日志分析自动创建数据库索引的系统,其特征在于,还包括:设置模块,用于设置预设时间段以及预设时段。8.根据权利要求7所述的根据日志分析自动创建数据库索引的系统,其特征在于,所述设置模块包括: 第一统计模块,用于统计预设时间段内数据库的访问量; 第一设置模块,用于设置数据库的访问量最低的时段为预设时段。
【专利摘要】本发明提供了一种根据日志分析自动创建数据库索引的方法,包括:创建数据库日志,记录对数据表进行的数据库操作,所述数据库操作包括查询、插入及修改;统计预设时间段内数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数;根据数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数计算查询、插入、修改的次数占比;根据查询、插入以及修改的次数占比生成索引列名;在预设时段内根据索引列名创建数据库索引;本发明还提供一种根据日志分析自动创建数据库索引的系统,能够对数据库自动创建最佳的索引,并进行动态更新。
【IPC分类】G06F17/30
【公开号】CN105045851
【申请号】CN201510392124
【发明人】陈丛亮, 刘德建, 毛新生
【申请人】福建天晴数码有限公司
【公开日】2015年11月11日
【申请日】2015年7月7日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1