一种基于用户行为的数据库表字段索引建立方法及系统技术方案

技术编号:35480476 阅读:13 留言:0更新日期:2022-11-05 16:31
本申请公开了一种基于用户行为的数据库表字段索引建立方法及系统,该方法包括:通过监听器接收客户端请求,构建请求信息库;调用索引建立器,并按照预设周期从请求信息库中获取请求信息,统计请求信息中对应字段序列的平均查询频次和区分度以及对应表的总行数,生成分析结果;其中,所述区分度为字段中所有不同的值的个数占表总行数的比例;根据分析结果判断当前请求是否满足建立索引的条件;若满足,则建立索引序列。本申请无需在系统上线之前建立索引,而是通过一套检测机制,监控、识别、分析用户的行为,预测用户可能经常查询的字段,并对其建立索引,做到既提升性能又不浪费磁盘空间,同时提升了开发效率。同时提升了开发效率。同时提升了开发效率。

【技术实现步骤摘要】
一种基于用户行为的数据库表字段索引建立方法及系统


[0001]本申请涉及数据库管理
,尤其涉及一种基于用户行为的数据库表字段索引建立方法及系统。

技术介绍

[0002]为了提升数据库的查询性能,通常会为数据库表字段建立索引。针对不同类型、频次的查询请求,正确建立索引能够将查询速度提升一个数量级。但是,索引本身是一种冗余,会消耗磁盘空间,因此如何正确建立索引十分关键。
[0003]目前,对数据库表字段建立索引的方法一般有以下几种:第一种是对所有数据库表字段均建立索引,但这种方式索引过多且相对孤立,通常存在无用索引,导致占用大量磁盘空间,而在查询时也容易出现慢查询问题。第二种是在系统上线前均不建立索引,在上线后产生慢查询后再排查问题,并建立对应索引,然而排查性能问题要消耗大量人力物力,由于数据量巨大,在排查后再建立索引通常也十分缓慢,甚至影响处理其他业务请求。第三种是根据既定业务需求,对部分数据库表字段建立索引,然而某些系统在运行过程中,会有动态的查询请求产生,此时开发者根据既定业务需求对部分数据库表字段的建立索引可能无法对这些动态的查询请求生效,同样会引发慢查询问题。

技术实现思路

[0004]本申请的目的在于提供种基于用户行为的数据库表字段索引建立方法及系统,以解决现有的数据库表字段索引建立方法中存在的占用大量磁盘空间,易出现慢查询,甚至影响其他业务请求处理的问题。
[0005]为实现上述目的,本申请提供一种基于用户行为的数据库表字段索引建立方法,包括:
[0006]通过监听器接收客户端请求,构建请求信息库;
[0007]调用索引建立器,并按照预设周期从请求信息库中获取请求信息,统计请求信息中对应字段序列的平均查询频次和区分度以及对应表的总行数,生成分析结果;其中,所述区分度为字段中所有不同的值的个数占表总行数的比例;
[0008]根据分析结果判断当前请求是否满足建立索引的条件;若满足,则建立索引序列。
[0009]进一步地,通过DML语句建立索引序列。
[0010]进一步地,所述建立索引的条件的默认配置包括:
[0011]请求信息中对应字段序列的平均查询频次连续3天内超过10分钟1次、对应字段序列的区分度大于0.3,以及对应表的总行数超过1000行。
[0012]进一步地,所述的基于用户行为的数据库表字段索引建立方法,还包括:
[0013]若当前请求不满足建立索引的条件,则返回执行按照预设周期从请求信息库获取请求信息步骤。
[0014]进一步地,所述请求包括sql语句执行请求。
[0015]进一步地,所述监听器包括拦截器,所述拦截器可采用mybatis。
[0016]本申请还提供一种基于用户行为的数据库表字段索引建立系统,包括:
[0017]监听单元,用于通过监听器接收客户端请求,构建请求信息库;
[0018]分析单元,用于调用索引建立器,并按照预设周期从请求信息库中获取请求信息,统计请求信息中对应字段序列的平均查询频次和区分度以及对应表的总行数,生成分析结果;其中,所述区分度为字段中所有不同的值的个数占表总行数的比例;
[0019]索引建立单元,用于根据分析结果判断当前请求是否满足建立索引的条件;若满足,则建立索引序列。
[0020]进一步地,所述索引建立单元,还用于通过DML语句建立索引序列。
[0021]本申请还提供一种终端设备,包括:
[0022]一个或多个处理器;
[0023]存储器,与所述处理器耦接,用于存储一个或多个程序;
[0024]当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上任一项所述的基于用户行为的数据库表字段索引建立方法。
[0025]本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的基于用户行为的数据库表字段索引建立方法。
[0026]相对于现有技术,本申请的有益效果在于:
[0027]本申请公开了一种基于用户行为的数据库表字段索引建立方法及系统,该方法包括:通过监听器接收客户端请求,构建请求信息库;调用索引建立器,并按照预设周期从请求信息库中获取请求信息,统计请求信息中对应字段序列的平均查询频次和区分度以及对应表的总行数,生成分析结果;其中,所述区分度为字段中所有不同的值的个数占表总行数的比例;根据分析结果判断当前请求是否满足建立索引的条件;若满足,则建立索引序列。
[0028]本申请无需在系统上线之前建立索引,而是通过一套检测机制,监控、识别、分析用户的行为,预测用户可能经常查询的字段,并对其建立索引,做到既提升性能又不浪费磁盘空间,同时提升了开发效率。
附图说明
[0029]为了更清楚地说明本申请的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0030]图1是本申请某一实施例提供的基于用户行为的数据库表字段索引建立方法的流程示意图;
[0031]图2是本申请某一实施例提供的监听器和索引建立器并行运算的流程示意图;
[0032]图3是本申请某一实施例提供的基于用户行为的数据库表字段索引建立系统的结构示意图;
[0033]图4是本申请某一实施例提供的终端设备的结构示意图。
具体实施方式
[0034]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完
整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0035]应当理解,文中所使用的步骤编号仅是为了方便描述,不对作为对步骤执行先后顺序的限定。
[0036]应当理解,在本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
[0037]术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0038]术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0039]为了帮助理解,首先对于本申请涉及的相关术语进行解释:
[0040]关系型数据库:关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。用户通过查询来检索数据库中的数据,而本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于用户行为的数据库表字段索引建立方法,其特征在于,包括:通过监听器接收客户端请求,构建请求信息库;调用索引建立器,并按照预设周期从请求信息库中获取请求信息,统计请求信息中对应字段序列的平均查询频次和区分度以及对应表的总行数,生成分析结果;其中,所述区分度为字段中所有不同的值的个数占表总行数的比例;根据分析结果判断当前请求是否满足建立索引的条件;若满足,则建立索引序列。2.根据权利要求1所述的基于用户行为的数据库表字段索引建立方法,其特征在于,通过DML语句建立索引序列。3.根据权利要求1所述的基于用户行为的数据库表字段索引建立方法,其特征在于,所述建立索引的条件的默认配置包括:请求信息中对应字段序列的平均查询频次连续3天内超过10分钟1次、对应字段序列的区分度大于0.3,以及对应表的总行数超过1000行。4.根据权利要求1所述的基于用户行为的数据库表字段索引建立方法,其特征在于,还包括:若当前请求不满足建立索引的条件,则返回执行按照预设周期从请求信息库获取请求信息步骤。5.根据权利要求1所述的基于用户行为的数据库表字段索引建立方法,其特征在于,所述请求包括sql语句执行请求。6.根据权利要求1所述的基于用户行为的数据库表字段索引建立方法,其特征在于,所述监...

【专利技术属性】
技术研发人员:洪达浩林京梁海棠梁远明
申请(专利权)人:广州市玄武无线科技股份有限公司
类型:发明
国别省市:

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

1