数据库索引更新方法、装置、服务器及存储介质与流程
- 国知局
- 2025-01-10 13:17:03
本发明涉及数据处理的,尤其涉及一种数据库索引更新方法、装置、服务器及存储介质。
背景技术:
1、数据库作为存储和处理业务数据的重要组成部分,随着业务的不断开展,数据库中的数据量将会越来越多。若在初始业务数据量少时没有建立数据库索引,会导致后期业务数据量增大之后,对应的字段操作变慢,影响业务功能使用。建立数据库索引后,随着时间推移业务出现开发人员和业务需求的变化,数据库的字段操作亦会产生变化,导致根据历史字段操作而建立的部分数据库索引变成无效索引,且部分业务功能下线之后,对应的数据库索引可能将不再使用而变成无效索引,无效索引会导致索引浪费,影响数据库表的操作性能。
技术实现思路
1、本发明提供一种数据库索引更新方法、装置、服务器及存储介质,其主要目的在于提供一种根据数据库的字段操作更新数据库索引的方法,以解决无效索引影响数据库表操作性能的技术问题。
2、为实现上述目的,本发明提供一种数据库索引更新方法,所述方法包括:
3、获取数据库的sql语句集;
4、对所述sql语句集中的每个sql语句根据对应的sql语句类型进行分析,提取每个sql语句的数据库表字段,统计所有提取的数据库表字段得到字段使用信息,根据sql语句的语法结构从所述sql语句集中的每个sql语句中提取数据库表名,统计所有提取的数据库表名得到表使用信息;
5、聚合所述字段使用信息和所述表使用信息得到汇总信息表,按照使用次数由高到低对所述汇总信息表中的数据库表名和数据库表字段进行排序,按照预设比例提取所述汇总信息表中排序靠前的数据库表名和数据库表字段得到待更新表名和待更新字段;
6、根据所述待更新表名和所述待更新字段,对数据库索引进行更新。
7、可选地,所述获取数据库的sql语句集,包括:
8、获取所述数据库对应的sql语句记录表;
9、从所述sql语句记录表提取多个sql语句并生成所述sql语句集。
10、可选地,所述对所述sql语句集中的每个sql语句根据对应的sql语句类型进行分析,提取每个sql语句的数据库表字段,包括:
11、将所述sql语句集中的sql语句按照sql语句类型进行分类;
12、根据sql语句类型对应的语句组成结构分析各分类sql语句中的数据库表字段所在位置,根据数据库表字段所在位置提取每个sql语句中的数据库表字段。
13、可选地,所述根据sql语句类型对应的语句组成结构分析各分类sql语句中的数据库表字段所在位置,根据数据库表字段所在位置提取每个sql语句中的数据库表字段,包括:
14、当所述sql语句分类为查询语句时,判断所述查询语句是否为select*语句;
15、若否,根据查询语句组成结构提取所述查询语句中select和from之间的字段得到所述查询语句中的数据库表字段;
16、若是,根据select*查询语句的组成结构获取查询表名,基于所述查询表名从所述数据库中获取对应的数据表,提取所述数据表中的字段作为所述查询语句中的数据库表字段;
17、当所述sql语句分类为非查询语句时,根据所述sql语句所属的sql语句类型对应的语句组成结构提取sql语句中的数据库表字段。
18、可选地,所述统计所有提取的数据库表字段得到字段使用信息,包括:
19、根据所述sql语句集中的每个sql语句的使用时间划分多个历史时段;
20、统计每个历史时段中的sql语句提取的数据库表字段的使用次数;
21、对多个历史时段中数据库表字段的使用次数进行总计得到数据库表字段的总使用次数;
22、基于数据库表字段的总使用次数和每个历史时段中数据库表字段的使用次数生成字段使用信息。
23、可选地,所述统计所有提取的数据库表名得到表使用信息,包括:
24、根据所述sql语句集中的每个sql语句的使用时间划分多个历史时段;
25、统计每个历史时段中的sql语句提取的数据库表名的使用次数;
26、对多个历史时段中数据库表名的使用次数进行总计得到数据库表名的总使用次数;
27、基于数据库表名的总使用次数和每个历史时段中数据库表名的使用次数生成表使用信息。
28、可选地,所述根据所述待更新表名和所述待更新字段,对数据库索引进行更新,包括:
29、将所述待更新表名和所述待更新字段与所述数据库索引中的索引字段进行匹配;
30、删除所述数据库索引中未匹配到所述待更新表名和所述待更新字段的索引字段;
31、根据未匹配到所述索引字段的待更新表名和待更新字段生成新增索引字段并插入所述数据库索引中。
32、为了解决上述问题,本发明还提供一种数据库索引更新装置,所述数据库索引更新装置包括:
33、语句获取模块,用于获取数据库的sql语句集;
34、分析统计模块,用于对所述sql语句集中的每个sql语句根据对应的sql语句类型进行分析,提取每个sql语句的数据库表字段,统计所有提取的数据库表字段得到字段使用信息,根据sql语句的语法结构从所述sql语句集中的每个sql语句中提取数据库表名,统计所有提取的数据库表名得到表使用信息;
35、汇总提取模块,用于聚合所述字段使用信息和所述表使用信息得到汇总信息表,按照使用次数由高到低对所述汇总信息表中的数据库表名和数据库表字段进行排序,按照预设比例提取所述汇总信息表中排序靠前的数据库表名和数据库表字段得到待更新表名和待更新字段;
36、索引更新模块,用于根据所述待更新表名和所述待更新字段,对数据库索引进行更新。
37、为了解决上述问题,本发明还提供一种服务器,所述服务器包括:
38、至少一个处理器;以及,
39、与所述至少一个处理器通信连接的存储器;其中,
40、所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的数据库索引更新方法。
41、为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的数据库索引更新方法。
42、本发明基于数据库的sql语句集分析数据库中表和字段的使用情况,根据分析结果统计数据库中表和字段的使用次数,根据数据库中表和字段的使用次数提取数据库中常用的表名和字段,根据数据库中常用的表名和字段更新数据库索引,从而实现数据库索引的更新优化,提升数据库表的字段操作流畅性。
技术特征:1.一种数据库索引更新方法,其特征在于,所述方法包括:
2.如权利要求1所述的数据库索引更新方法,其特征在于,所述获取数据库的sql语句集,包括:
3.如权利要求1所述的数据库索引更新方法,其特征在于,所述对所述sql语句集中的每个sql语句根据对应的sql语句类型进行分析,提取每个sql语句的数据库表字段,包括:
4.如权利要求3所述的数据库索引更新方法,其特征在于,所述根据sql语句类型对应的语句组成结构分析各分类sql语句中的数据库表字段所在位置,根据数据库表字段所在位置提取每个sql语句中的数据库表字段,包括:
5.如权利要求1所述的数据库索引更新方法,其特征在于,所述统计所有提取的数据库表字段得到字段使用信息,包括:
6.如权利要求1所述的数据库索引更新方法,其特征在于,所述统计所有提取的数据库表名得到表使用信息,包括:
7.如权利要求1所述的数据库索引更新方法,其特征在于,所述根据所述待更新表名和所述待更新字段,对数据库索引进行更新,包括:
8.一种数据库索引更新装置,其特征在于,所述数据库索引更新装置包括:
9.一种服务器,其特征在于,所述服务器包括:
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任意一项所述的数据库索引更新方法。
技术总结本发明涉及数据处理技术领域,提供了一种数据库索引更新方法,包括:获取数据库的SQL语句集,根据SQL语句类型提取SQL语句集中的每个SQL语句的数据库表字段,根据SQL语句的语法结构提取SQL语句集中的每个SQL语句的数据库表名,统计所有提取的数据库表字段和数据库表名得到字段使用信息和表使用信息;聚合字段使用信息和表使用信息得到汇总信息表,按照使用次数由高到低对汇总信息表进行排序并按预设比例提取排序靠前的数据库表名和数据库表字段得到待更新表名和待更新字段;根据待更新表名和待更新字段对数据库索引进行更新。本发明的数据库索引更新方法能够根据数据库中常用的表名和字段更新数据库索引,提升数据库表的字段操作流畅性。技术研发人员:龙长江受保护的技术使用者:中国平安财产保险股份有限公司技术研发日:技术公布日:2025/1/6本文地址:https://www.jishuxx.com/zhuanli/20250110/352137.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表