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

文档序号:9326937阅读:988来源:国知局
根据日志分析自动创建数据库索引的方法及系统的制作方法
【技术领域】
[0001]本发明涉及数据库领域,尤其涉及一种根据日志分析自动创建数据库索引的方法及系统。
【背景技术】
[0002]目前数据库的索引都是通过人工根据系统的实际使用情况,或者根据日常的经验创建,并对其进行优化。然而由于访问的人随时都在变化,人为创建的静态索引可能只能应付一部分特定时段的场景,或者是过去的一些场景。而在特定时段之外的另外一些时段,或者未来变化的情况,之前创建的静态索引往往就不适用了。

【发明内容】

[0003]本发明所要解决的技术问题是:提供一种根据日志分析自动创建数据库索引的方法及系统,能够对数据库自动创建最佳的索引,并进行动态更新。
[0004]为了解决上述技术问题,本发明采用的技术方案为:
[0005]—种根据日志分析自动创建数据库索引的方法,包括:
[0006]创建数据库日志,记录对数据表进行的数据库操作,所述数据库操作包括查询、插入及修改;
[0007]统计预设时间段内数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数;
[0008]根据数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数计算查询、插入、修改的次数占比;
[0009]根据查询、插入以及修改的次数占比生成索引列名;
[0010]在预设时段内根据索引列名创建数据库索引。
[0011]上述根据日志分析自动创建数据库索引的方法的有益效果在于:创建数据库日志,记录对数据表中每一项内容的数据库操作,统计出预设时间段内对数据表每一列查询、插入及修改的次数,从而计算出对每一列的查询、插入及修改的次数占比,由于查询时利用索引可以提高查询速度,而插入和修改时利用索引则需要对索引进行修改降低了性能,因此根据查询、插入及修改的次数占比即可判断此列是否需要创建索引,从而根据计算出的查询、插入及修改的次数占比生成索引列名,并在预设时间段根据索引列名创建数据库索引,实现对数据库自动创建最佳的索引,并进行动态更新。
[0012]—种根据日志分析自动创建数据库索引的系统,包括:
[0013]创建模块,用于创建数据库日志,记录对数据表进行的数据库操作,所述数据库操作包括查询、插入及修改;
[0014]统计模块,用于统计预设时间段内数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数;
[0015]计算模块,用于根据数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数计算查询、插入、修改的次数占比;
[0016]索引列名生成模块,用于根据查询、插入以及修改的次数占比生成索引列名;
[0017]索引创建模块,用于在预设时段内根据索引列名创建数据库索引。
[0018]上述根据日志分析自动创建数据库索引的系统的有益效果在于:通过创建模块创建数据库日志,从而能够记录对数据表中每一项内容的数据库操作,进一步通过统计模块统计数据库操作的总次数以及对数据表的中每一列查询、插入和修改的次数,从而计算模块能够计算出查询、插入、修改的次数占比,索引列名生成模块根据计算模块计算出的次数占比生成索引列名并通过所以重建模块根据索引列名创建数据库索引,实现对数据库自动创建最佳的索引,并进行动态更新。
【附图说明】
[0019]图1为本发明实施例一根据日志分析自动创建数据库索引的方法流程图;
[0020]图2为本发明实施例二根据日志分析自动创建数据库索引的系统结构图。
[0021]标号说明:
[0022]1、创建模块;2、统计模块;3、计算模块;4、索引列名生成模块;5、索引创建模块;6、设置模块;61、第一统计模块;62、第一设置模块。
【具体实施方式】
[0023]为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
[0024]本发明最关键的构思在于:通过创建数据库日志记录数据库操作,并计算查询、插入及修改的次数占比,根据查询、插入及修改的次数占比判断是否创建索引。
[0025]请参照图1,
[0026]—种根据日志分析自动创建数据库索引的方法,包括:
[0027]S1、创建数据库日志,记录对数据表进行的数据库操作,所述数据库操作包括查询、插入及修改;
[0028]S2、统计预设时间段内数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数;
[0029]S3、根据数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数计算查询、插入、修改的次数占比;
[0030]S4、根据查询、插入以及修改的次数占比生成索引列名;
[0031]S5、在预设时段内根据索引列名创建数据库索引。
[0032]上述根据日志分析自动创建数据库索引的方法的有益效果在于:创建数据库日志,记录对数据表中每一项内容的数据库操作,统计出预设时间段内对数据表每一列查询、插入及修改的次数,从而计算出对每一列的查询、插入及修改的次数占比,由于查询时利用索引可以提高查询速度,而插入和修改时利用索引则需要对索引进行修改降低了性能,因此根据查询、插入及修改的次数占比即可判断此列是否需要创建索引,从而根据计算出的查询、插入及修改的次数占比生成索引列名,并在预设时间段根据索引列名创建数据库索引,实现对数据库自动创建最佳的索引,并进行动态更新。
[0033]进一步的,所述“根据查询、插入以及修改的次数占比生成索引列名”具体为:
[0034]对查询次数占比高于50%的列创建索引列名;
[0035]对插入或修改次数占比高于50%的列不创建索引列名。
[0036]从上述描述可知,对查询次数占比高的列创建索引列名,插入或修改次数占比高的列不创建索引列名,既提高查询速度,又提高数据库性能。
[0037]进一步的,所述“根据查询、插入以及修改的次数占比生成索引列名”具体为:
[0038]对查询次数占比高于50%的列保存索引列名;
[0039]对插入或修改次数占比高于50%的列删除索引列名。
[0040]从上述描述可知,当已经存在数据库索引时,对查询次数占比高的列保存其索引列名,插入或修改次数占比高的列删除其索引列名,既提高查询速度,又提高数据库性能。
[0041]进一步的,所述预设时间段为一天。
[0042]进一步的,所述预设时段为预设时间段内数据库访问量最低的时段。
[0043]从上述描述可知,在访问量最低的时段,从而既能及时更新索引又不影响用户访问数据库。
[0044]请参照图2,
[0045]—种根据日志分析自动创建数据库索引的系统,包括:
[0046]创建模块1,用于创建数据库日志,记录对数据表进行的数据库操作,所述数据库操作包括查询、插入及修改;
[0047]统计模块2,用于统计预设时间段内数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数;
[0048]计算模块3,用于根据数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数计算查询、插入、修改的次数占比;
[0049]索引列名生成模块4,用于根据查询、插入以及修改的次数占比生成索引列名;
[0050]索引创建模块5,用于在预设时段内根据索引列名创建数据库索引。
[0051]上述根据日志分析自动创建数据库索引的系统的有益效果在于:通过创建模块I创建数据库日志,从而能够记录对数据表中每一项内容的数据库操作,进一步通过统计模块2统计数据库操作的总次数以及对数据表的中每一列查询、插入和修改的次数,从而计算模块3能够计算出查询、插入、修改的次数占比,索
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1