本申请提供一种索引优化方法及装置,应用于数据库领域,在上述索引优化方法中,基于数据库生成的历史索引数据,可以生成相应的推荐索引任务,并在执行上述推荐索引任务之后,基于对数据库总体查询性能的评估,确定保留的执行推荐索引任务后的索引,以实现对数据库的索引优化。因此,在对数据库的索引进行优化的过程中,根据历史索引数据便可以实现对执行效率的查询以及对索引的优化,从而提高了优化的效率以及准确率。率以及准确率。率以及准确率。
【技术实现步骤摘要】
一种索引优化方法及装置
[0001]本申请涉及数据库领域,具体而言,涉及一种索引优化方法及装置。
技术介绍
[0002]在现有技术中,对数据库中的索引进行优化的方案一般为:人工通过监控和日志来判断查询的执行效率,然后通过创建、修改等操作对索引进行优化,从而达到语句性能的提升。但是,通过人工来判断查询的执行效率以及对索引做相关优化效率低下且准确率较低。
技术实现思路
[0003]本申请实施例的目的在于提供一种索引优化方法及装置,用以解决通过人工来判断查询的执行效率以及对索引做相关优化效率低下且准确率较低的技术问题。
[0004]为了实现上述目的,本申请实施例所提供的技术方案如下所示:
[0005]第一方面,本申请实施例提供一种索引优化方法,包括:获取数据库的历史索引数据;根据所述历史索引数据生成推荐索引任务;执行所述推荐索引任务,并分别获取执行所述推荐索引任务前的第一验证数据以及执行所述推荐索引任务后的第二验证数据;其中,所述第一验证数据包括执行所述推荐索引任务前所述数据库的总体查询性能,所述第二验证数据包括执行所述推荐索引任务后所述数据库的总体查询性能;根据所述第一验证数据以及所述第二验证数据确定所述数据库的总体查询性能的增益;若所述数据库的总体查询性能的增益大于预设增益阈值,则保持执行所述推荐索引任务后的索引,以实现对所述数据库的索引优化。在上述方案中,基于数据库生成的历史索引数据,可以生成相应的推荐索引任务,并在执行上述推荐索引任务之后,基于对数据库总体查询性能的评估,确定保留的执行推荐索引任务后的索引,以实现对数据库的索引优化。因此,在对数据库的索引进行优化的过程中,根据历史索引数据便可以实现对执行效率的查询以及对索引的优化,从而提高了优化的效率以及准确率。
[0006]在本申请的可选实施例中,所述历史索引数据包括索引缺失数据,所述索引缺失数据包括缺失标识信息、缺失计数信息以及缺失影响评估信息;所述获取数据库的历史索引数据,包括:若查询时触发索引缺失,记录与缺失的索引对应的所述缺失标识信息以及以所述缺失的索引为目标进行查询的所述缺失计数信息;获取用于表征所述缺失的索引对查询的影响的所述缺失影响评估信息。在上述方案中,如果在查询索引的过程中发现查询的索引缺失,则可以记录该缺失索引的相关信息,以生成与缺失的索引相关的推荐索引任务,从而实现对数据库索引的优化。
[0007]在本申请的可选实施例中,所述根据所述历史索引数据生成推荐索引任务,包括:根据所述索引缺失数据生成增加索引的任务。在上述方案中,如果在查询索引的过程中发现查询的索引缺失,则可以生成增加该索引的任务,从而实现对数据库索引的优化。
[0008]在本申请的可选实施例中,所述历史索引数据包括索引命中数据,所述索引命中
数据包括命中标识信息、命中计数信息以及命中影响评估信息;所述获取数据库的历史索引数据,包括:若查询时命中索引,记录与命中的索引对应的所述命中标识信息以及以所述命中的索引为目标进行查询的所述命中计数信息;获取用于表征优化后的命中的索引对查询的影响的所述命中影响评估信息。在上述方案中,如果在查询索引的过程中发现查询的索引被命中,则可以记录该命中的索引的相关信息,以便在需要的时候生成与命中的索引相关的推荐索引任务,从而实现对数据库索引的优化。
[0009]在本申请的可选实施例中,所述根据所述历史索引数据生成推荐索引任务,包括:根据所述索引命中数据生成修改索引的任务。在上述方案中,如果在查询索引的过程中发现查询的索引被命中,则可以在需要的时候生成修改该索引的任务,从而实现对数据库索引的优化。
[0010]在本申请的可选实施例中,所述历史索引数据包括处理查询的硬件对应的查询性能数据;所述获取数据库的历史索引数据,还包括:获取所述查询性能数据;对所述查询性能数据根据不同的维度进行统计,并根据时间对统计后的数据进行分组,以得到所述历史索引数据。在上述方案中,获取的历史索引数据中除了可以包括索引相关的信息,还可以包括在处理查询的过程中,硬件对应的查询性能数据,从而在对数据库的索引进行优化的过程中,考虑硬件的性能影响,以达到最好的优化效果。
[0011]在本申请的可选实施例中,在所述根据所述历史索引数据生成推荐索引任务之后,所述方法还包括:确定每个推荐索引任务对所述数据库的总体查询性能的影响;筛除所述推荐索引任务中对所述数据库的总体查询性能的影响低于预设影响阈值的推荐索引任务。在上述方案中,在生成的推荐索引任务中,确定每一个推荐索引任务对数据库总体查询性能的影响,并筛除其中数据库总体查询性能较小的推荐索引任务,从而实现对数据库的索引实现更好的优化效果。
[0012]在本申请的可选实施例中,在所述确定每个推荐索引任务对所述数据库的总体查询性能的影响之后,所述方法还包括:筛除所述推荐索引任务中在不同情形下的所述数据库的总体查询性能的影响的差值大于预设差值阈值的推荐索引任务。在上述方案中,在生成的推荐索引任务中,筛除在不同情形下的数据库总体查询性能的影响的差距较大的推荐索引任务,从而实现对数据库的索引实现更好的优化效果。
[0013]在本申请的可选实施例中,所述确定每个推荐索引任务对所述数据库的总体查询性能的影响,包括:获取所述推荐索引任务对应的索引被查询的频率、每次查询的平均成本以及优化器评估的可被所述索引优化的成本百分比;确定所述推荐索引任务对应的索引被查询的频率、所述每次查询的平均成本以及所述优化器评估的可被所述索引优化的成本百分比的乘积为每个推荐索引任务对所述数据库的总体查询性能的影响。在上述方案中,可以根据索引被查询的频率、每次查询的平均成本以及优化器评估的可被索引优化的成本百分比确定每个推荐索引任务对数据库总体查询性能的影响。
[0014]在本申请的可选实施例中,在所述根据所述历史索引数据生成推荐索引任务之后,所述方法还包括:将所述推荐索引任务中针对同一个表的推荐索引任务进行合并。在上述方案中,可以将索引推荐索引任务中针对同一个表的推荐索引任务合并为一个推荐索引任务,从而减少执行任务的次数,提高优化的效率。
[0015]第二方面,本申请实施例提供一种索引优化装置,包括:获取模块,用于获取数据
库的历史索引数据;生成模块,用于根据所述历史索引数据生成推荐索引任务;执行模块,用于执行所述推荐索引任务,并分别获取执行所述推荐索引任务前的第一验证数据以及执行所述推荐索引任务后的第二验证数据;其中,所述第一验证数据包括执行所述推荐索引任务前所述数据库的总体查询性能,所述第二验证数据包括执行所述推荐索引任务后所述数据库的总体查询性能;第一确定模块,用于根据所述第一验证数据以及所述第二验证数据确定所述数据库的总体查询性能的增益;优化模块,用于若所述数据库的总体查询性能的增益大于预设增益阈值,则保持执行所述推荐索引任务后的索引,以实现对所述数据库的索引优化。在上述方案中,基于数据库生成的历史索引数据,可以生成相应的推荐索引任务,并在执行上述推荐索引任务之后,基于对数据库总体查询本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种索引优化方法,其特征在于,包括:获取数据库的历史索引数据;根据所述历史索引数据生成推荐索引任务;执行所述推荐索引任务,并分别获取执行所述推荐索引任务前的第一验证数据以及执行所述推荐索引任务后的第二验证数据;其中,所述第一验证数据包括执行所述推荐索引任务前所述数据库的总体查询性能,所述第二验证数据包括执行所述推荐索引任务后所述数据库的总体查询性能;根据所述第一验证数据以及所述第二验证数据确定所述数据库的总体查询性能的增益;若所述数据库的总体查询性能的增益大于预设增益阈值,则保持执行所述推荐索引任务后的索引,以实现对所述数据库的索引优化。2.根据权利要求1所述的索引优化方法,其特征在于,所述历史索引数据包括索引缺失数据,所述索引缺失数据包括缺失标识信息、缺失计数信息以及缺失影响评估信息;所述获取数据库的历史索引数据,包括:若查询时触发索引缺失,记录与缺失的索引对应的所述缺失标识信息以及以所述缺失的索引为目标进行查询的所述缺失计数信息;获取用于表征所述缺失的索引对查询的影响的所述缺失影响评估信息。3.根据权利要求2所述的索引优化方法,其特征在于,所述根据所述历史索引数据生成推荐索引任务,包括:根据所述索引缺失数据生成增加索引的任务。4.根据权利要求1所述的索引优化方法,其特征在于,所述历史索引数据包括索引命中数据,所述索引命中数据包括命中标识信息、命中计数信息以及命中影响评估信息;所述获取数据库的历史索引数据,包括:若查询时命中索引,记录与命中的索引对应的所述命中标识信息以及以所述命中的索引为目标进行查询的所述命中计数信息;获取用于表征优化后的命中的索引对查询的影响的所述命中影响评估信息。5.根据权利要求4所述的索引优化方法,其特征在于,所述根据所述历史索引数据生成推荐索引任务,包括:根据所述索引命中数据生成修改索引的任务。6.根据权利要求2
‑
5任一项所述的索引优化方法,其特征在于,所述历史索引数据包括处理查询的硬件对应的查询性能数据;所述获取数据库的历史索引数据,还包括:获取所述查询性能数据;对所述查询性能数据根据不同的维度进行统计,并根据时间对统计后的数据进行分组,以得到所述历史索引数据。7.根据权利要求1所述的索引优化方法,其特征在于,在所述根据所述历史索引数据生成推荐索引任务之后,所述方法还包括:确定每个推荐索引任务对所述数据库的总体查询性能的影...
【专利技术属性】
技术研发人员:郎俊,黄志龙,罗进,王浩,廖强,
申请(专利权)人:成都佳华物链云科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。