数据库的处理方法、装置制造方法及图纸

技术编号:33338218 阅读:10 留言:0更新日期:2022-05-08 09:22
本申请提供了一种数据库的处理方法、装置、电子设备及计算机可读存储介质;涉及数据库的测试和优化;方法包括:从日志中提取出针对所述数据库的多个操作记录;对所述多个操作记录进行去重处理,以去除包括相同查询类型字段、且包括相同查询条件字段的数据库语句的操作记录;对进行所述去重处理后的操作记录进行筛选处理;根据所述筛选处理的结果生成所述数据库的优化方式,并基于所述优化方式更新所述数据库。通过本申请,能够提高数据库查询性能。能够提高数据库查询性能。能够提高数据库查询性能。

【技术实现步骤摘要】
数据库的处理方法、装置


[0001]本申请涉及数据库技术,尤其涉及一种数据库的处理方法、装置、电子设备及计算机可读存储介质。

技术介绍

[0002]数据库(Database),简而言之可视为电子化的文件柜,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
[0003]数据库索引是数据库中一种排序的数据结构,以协助快速查询、更新数据库表中数据。数据库索引就是为了提高表的搜索效率而对某些字段中的值建立的目录。配置的数据库索引不同也会导致数据库性能完全不同。而相关技术中,通常是在经常需要排序的列上创建索引,由于数据库中存储的海量数据,任意的数据变动均会对索引维护造成巨大的开销,导致代码执行的效率也会急剧降低。因此,在相关技术中,缺乏对数据库索引进行优化的有效方案。

技术实现思路

[0004]本申请实施例提供一种数据库的处理方法、装置、电子设备及计算机可读存储介质,能够提升数据库的性能。
[0005]本申请实施例的技术方案是这样实现的:
[0006]本申请实施例提供一种数据库的处理方法,包括:
[0007]从日志中提取出针对所述数据库的多个操作记录;
[0008]对所述多个操作记录进行去重处理,以去除包括相同查询类型字段、且包括相同查询条件字段的数据库语句的操作记录;
[0009]对进行所述去重处理后的操作记录进行筛选处理;
[0010]根据所述筛选处理的结果生成所述数据库的优化方式,并基于所述优化方式更新所述数据库。
[0011]本申请实施例提供一种数据库的处理装置,包括:。
[0012]提取模块,用于从日志中提取出针对所述数据库的多个操作记录;
[0013]去重模块,用于对所述多个操作记录进行去重处理,以去除包括相同查询类型字段、且包括相同查询条件字段的数据库语句的操作记录;
[0014]筛选模块,用于对进行所述去重处理后的操作记录进行筛选处理;
[0015]第一优化模块,用于根据所述筛选处理的结果生成所述数据库的优化方式,并基于所述优化方式更新所述数据库。
[0016]在上述方案中,所述去重模块,还用于以下至少之一:
[0017]对所述去重处理后的操作记录进行索引的存在性检测处理;
[0018]对所述去重处理后的操作记录进行索引的弃用检测处理。
[0019]在上述方案中,所述去重模块,还用于在所述去重处理后的操作记录中,确定查询类型为全表扫描的操作记录,并针对所述查询类型为全表扫描的操作记录进行索引字段的检测;
[0020]当检测到所述操作记录的索引字段为空时,将所述操作记录的数据库语句中所使用的查询字段作为单列索引,添加到所述字段为空的索引字段中;
[0021]当检测到所述操作记录的索引字段为非空时,调用索引失效原因数据库文件,将所述操作记录的数据库语句中所使用的查询字段,与所述索引失效原因数据库文件中的查询失效字段进行比对,以得到索引失效的原因。
[0022]在上述方案中,所述去重模块,还用于检测所述去重处理后的操作记录中的数据库语句,得到所述数据库语句中使用过的索引;
[0023]将所述使用过的索引与所述数据库中的所有索引进行对比,确定所述所有索引中除所述使用过的索引之外的索引为弃用索引。
[0024]在上述方案中,所述第一优化模块,还用于当对所述去重处理后的操作记录进行索引的存在性检测处理时,生成所述数据库的以下优化方式:基于所述索引失效的原因所指示的正确的数据库语句,对所述操作记录中的数据库语句进行修正;
[0025]当对所述去重处理后的操作记录进行索引的弃用检测处理时,生成所述数据库的以下优化方式:删除所述数据库中的所述弃用索引。
[0026]在上述方案中,本申请实施例提供的一种数据库的处理装置,还包括:
[0027]第二优化模块,用于对所述数据库进行索引的冗余检测处理,得到所述数据库中的冗余索引;
[0028]其中,所述冗余索引为至少满足以下条件之一的索引:
[0029]所述索引属于联合索引中的索引字段、且被设置为单列索引;
[0030]所述索引被设置为主键、且被设置为单列索引;
[0031]所述索引被设置为索引名不同的至少两个单列索引;
[0032]当所述数据库中的索引属于联合索引中的索引字段、且被设置为单列索引,或所述数据库中的索引被设置为主键、且被设置为单列索引时,确定所述数据库的以下优化方式:删除所述单列索引;
[0033]当所述数据库中的索引被设置为索引名不同的至少两个单列索引时,确定数据库的以下优化方式:保留查询效率最高的单列索引,并删除掉除所述查询效率最高的单列索引之外的单列索引。
[0034]在上述方案中,本申请实施例提供的一种数据库的处理装置,还包括:
[0035]排序模块,用于获取所述数据库中每个数据库表的数据量;
[0036]当所述数据量大于数据量阈值时,获取所述数据库表的至少两个索引字段的查询频率,按照所述查询频率由高到低的顺序对所述至少两个索引字段进行排序。
[0037]在上述方案中,本申请实施例提供的一种数据库的处理装置,还包括:
[0038]设置模块,用于获取所述数据库中每个数据库表的索引字段的数据内容不同的行数;
[0039]确定所述数据内容不同的行数与所述索引字段的总行数的差异比值,将所述差异比值高于差异阈值的索引字段设置为索引。
[0040]在上述方案中,本申请实施例提供的一种数据库的处理装置,还包括:
[0041]扫描模块,用于根据索引对数据库的扫描结果进行排序;
[0042]其中,对所述数据库的扫描结果进行排序需要满足以下至少之一的条件:
[0043]针对所述数据库进行单表查询时,索引的列顺序与数据库语句中的排序字段的列顺序一致、且所有列的排序方向一致;
[0044]针对所述数据库进行多个关联表查询时,数据库语句中的排序字段全部为第一张表。
[0045]本申请实施例提供一种数据库的处理装置,包括:
[0046]存储器,用于存储可执行指令;
[0047]处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的数据库的处理方法。
[0048]本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于被处理器执行时,实现本申请实施例提供的数据库的处理方法。
[0049]本申请实施例具有以下有益效果:
[0050]从日志中提取多个操作记录,对多个操作记录进行去重、筛选处理后,生成数据库的优化方式,从而基于优化方式更新数据库,以提升数据库查询性能;对多个操作记录进行去重处理,进而对去重处理后的操作记录进行筛选处理,生成的数据库的优化方式,能够根据操作记录智能地对数据库进行更新,提升了维护数据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库的处理方法,其特征在于,包括:从日志中提取出针对所述数据库的多个操作记录;对所述多个操作记录进行去重处理,以去除包括相同查询类型字段、且包括相同查询条件字段的数据库语句的操作记录;对进行所述去重处理后的操作记录进行筛选处理;根据所述筛选处理的结果生成所述数据库的优化方式,并基于所述优化方式更新所述数据库。2.根据权利要求1所述的方法,其特征在于,所述对进行所述去重处理后的操作记录进行筛选处理,包括以下至少之一:对所述去重处理后的操作记录进行索引的存在性检测处理;对所述去重处理后的操作记录进行索引的弃用检测处理。3.根据权利要求2所述的方法,其特征在于,所述对所述去重处理后的操作记录进行索引的存在性检测处理,包括:在所述去重处理后的操作记录中,确定查询类型为全表扫描的操作记录,并针对所述查询类型为全表扫描的操作记录进行索引字段的检测;当检测到所述操作记录的索引字段为空时,将所述操作记录的数据库语句中所使用的查询字段作为单列索引,添加到所述字段为空的索引字段中;当检测到所述操作记录的索引字段为非空时,调用索引失效原因数据库文件,将所述操作记录的数据库语句中所使用的查询字段,与所述索引失效原因数据库文件中的查询失效字段进行比对,以得到索引失效的原因。4.根据权利要求2所述的方法,其特征在于,所述对所述去重处理后的操作记录进行索引的弃用检测处理,包括:检测所述去重处理后的操作记录中的数据库语句,得到所述数据库语句中使用过的索引;将所述使用过的索引与所述数据库中的所有索引进行对比,确定所述所有索引中除所述使用过的索引之外的索引为弃用索引。5.根据权利要求3或4所述的方法,其特征在于,所述根据所述筛选处理的结果生成所述数据库的优化方式,包括:当对所述去重处理后的操作记录进行索引的存在性检测处理时,生成所述数据库的以下优化方式:基于所述索引失效的原因所指示的正确的数据库语句,对所述操作记录中的数据库语句进行修正;当对所述去重处理后的操作记录进行索引的弃用检测处理时,生成所述数据库的以下优化方式:删除所述数据库中的所述弃用索引。6.根据权利要求1所述的方法,其特征在于,所述方...

【专利技术属性】
技术研发人员:黄文昊
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1