数据库索引创建方法和装置与流程

文档序号:11216282阅读:430来源:国知局
数据库索引创建方法和装置与流程

本发明涉及数据库技术,特别是涉及一种数据库索引创建方法和装置。



背景技术:

目前的应用程序大部分都使用数据库来存储底层数据,在应用程序运行过程中经常需要做大量的数据查询操作。当数据库数据量较大时,大量的数据查询操作就会存在查询性能差的问题。例如,查询特定数据结果需要时间过长,从而导致需要较长时间才能将数据结果返回客户端,极端情况下,当在一定时间内无法执行完查询时,会导致数据库超时错误,客户端无法获取数据结果从而出现错误页面。另外,查询特定数据需要大量的服务器i/o操作,因此也会给数据库服务器带来较大的负载压力。

在数据库表创建之初,由于数据量比较小,此时不会出现查询性能问题,但是,在程序运行一段时间之后,随着数据库数据量的增加,在进行大量的数据查询时就会存在上述查询性能差的问题。

由此可见,当应用程序在数据库表中的数据大量增长以后,运行时会存在上述查询性能问题。



技术实现要素:

有鉴于此,本发明的主要目的在于提供一种数据库索引创建方法和装置,可以提高应用程序的数据查询性能。

为了达到上述目的,本发明提出的技术方案为:

一种数据库索引创建方法,包括:

当发生数据查询操作或预设的统计周期结束时,对数据查询操作统计数据进行分析,确定出数据查询操作次数满足预设自动创建索引条件的查询字段组合;

对于每个没有相应数据表索引的所述查询字段组合,根据该查询字段组合建立数据表索引。

一种数据库索引创建装置,包括:

数据分析模块,用于在发生数据查询操作或预设的统计周期结束时,对数据查询 操作统计数据进行分析,确定出数据查询操作次数满足预设自动创建索引条件的查询字段组合;

索引创建模块,用于对于每个没有相应数据表索引的所述查询字段组合,根据该查询字段组合建立数据表索引。

综上所述,本发明提出的数据库索引创建方法和装置,通过监测各种查询字段组合对应的查询次数,来触发利用查询次数达到一定条件的查询字段组合,自动创建相应的数据表索引。这样,对于操作频繁的查询可以直接利用所建立的索引获取数据,从而可以大幅度提高应用程序的数据查询性能。

附图说明

图1为本发明实施例一的方法流程示意图;

图2为本发明实施例一的装置结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。

本发明的核心思想是:对应用程序在运行过程中进行的数据查询操作进行采集,对所采集的数据查询操作数据进行分析,针对查询次数高的查询条件,自动地在数据表上创建相应的索引,以便提高数据查询效率。

图1为本发明实施例一的数据库索引创建方法流程示意图,如图1所示,该实施例主要包括:

步骤101、当发生数据查询操作或预设的统计周期结束时,对数据查询操作统计数据进行分析,确定出数据查询操作次数满足预设自动创建索引条件的查询字段组合。

本步骤,用于根据数据查询操作的统计数据,来确定出查询次数达到一定条件的查询字段组合,以便基于此,建立相应的数据表索引,以提高数据查询性能。

在实际应用中,本步骤所述分析的触发可以是事件触发也可以是周期触发,即所述分析的执行时机可以为发生数据查询操作时或者是每个统计周期结束时。下面分别就这两种触发情况下所述分析的具体实现进行举例说明:

较佳地,当发生数据查询操作时,可以采用下述方法对数据查询操作统计数据进行分析:

步骤1011a、获取所述数据查询操作中的查询字段组合。

本步骤中,需要从数据查询操作中解析出所包含的查询字段组合,具体地,即从查询条件中获取所涉及的查询字段以及查询字段之间的关联关系,该数据查询操作中的查询字段组合即通过这些查询字段以及之间的关联关系(包括字段的先后顺序和关联词)进行限定。

步骤1012a、计算在所述统计周期内以所述查询字段组合为查询条件的数据查询操作次数。

本步骤中,需要计算每种查询字段组合在当前周期内对应的数据查询操作次数,以便及时监测到对应的查询次数较多的查询字段组合。

当对应的查询次数较多时,说明以该查询字段组合为查询条件的查询需求多,因此,据此创建相应的数据表索引,可以有效提高查询效率,改善大量数据查询时的查询性能。

步骤1013a、判断所述数据查询操作次数是否满足所述自动创建索引条件。

较佳地,当所述统计周期结束时,对数据查询操作统计数据进行分析包括:

步骤1011b、在所述统计周期结束时,获取本周期中各数据查询操作中的查询字段组合,对于每种查询字段组合,计算本周期中以该查询字段组合为查询条件的数据查询操作次数。

步骤1012b、判断每个所述数据查询操作次数是否满足所述自动创建索引条件。

在实际应用中,本领域技术人员可以较为简单的方式设置所述自动创建索引条件,即所述数据查询操作次数大于预设阈值。

较佳地,为了提高对用于创建数据表索引的查询字段组合的选择的准确性,可以将自动创建索引条件设置为如下形式:

所述数据查询操作次数大于预设阈值并且所述查询字段组合在前n个所述统计周期内的数据查询操作次数均大于所述阈值。

这里,将综合当前周期及此前的n个统计周期内的数据查询操作次数,来进行选择。当一种查询字段组合不具有普遍性而仅是一个短期时间内的频繁行为时,为其创建索引进没有意义的,因此,采用上述自动创建索引条件,可以避免将其选择为用于创建数据表索引的查询字段组合。所述n可由本领域技术人员根据实际需要设置。

或者,将自动创建索引条件设置为:

所述数据查询操作次数大于预设阈值并且所述查询字段组合在当前累积时间 段内的指定统计周期的数据查询操作次数的均值大于所述阈值。

其中,所述指定统计周期为当前累积时间段内除周期tmin和周期tmax之外的其他统计周期,所述累积时间段由m个统计周期组成,所述周期tmin为当前累积时间段内所述查询字段组合的数据查询操作次数最少的统计周期,所述周期tmax为当前累积时间段内所述查询字段组合的数据查询操作次数最多的统计周期。具体地,所述m可由本领域技术人员根据实际需要设置。

在上述自动创建索引条件中,需要将当前一时间段内(即当前累积时间段内)数据查询操作次数最少的统计周期和数据查询操作次数最多的统计周期的数据去除,以确保所确定出的满足条件的查询字段组合的高频查询特性具有普遍性,减少不必要的数据表索引的建立。

本发明所述统计周期的长度可由本领域技术人员根据实际需要设置,例如可以是若干小时、天、周或月等,在此不再赘述。

步骤102、对于每个没有相应数据表索引的所述查询字段组合,根据该查询字段组合建立数据表索引。

本步骤中,对于步骤101中确定出的查询字段组合,如果此前没有基于其创建相应的数据表索引,则会触发根据其创建相应的数据表索引。

图2为与上述方法相对应的数据库索引创建装置结构示意图,如图2所示,该装置包括:

数据分析模块,用于在发生数据查询操作或预设的统计周期结束时,对数据查询操作统计数据进行分析,确定出数据查询操作次数满足预设自动创建索引条件的查询字段组合;

索引创建模块,用于对于每个没有相应数据表索引的所述查询字段组合,根据该查询字段组合建立数据表索引。

较佳地,所述数据分析模块,用于当发生数据查询操作时,获取所述数据查询操作中的查询字段组合;计算在当前预设统计周期内以所述查询字段组合为查询条件的数据查询操作次数;判断所述数据查询操作次数是否满足所述自动创建索引条件。

较佳地,所述数据分析模块,用于在所述统计周期结束时,获取本周期中各数据查询操作中的查询字段组合,对于每种查询字段组合,计算本周期中以该查询字段组合为查询条件的数据查询操作次数,并判断每个所述数据查询操作次数是否满足所述自动创建索引条件。

较佳地,所述自动创建索引条件包括:

所述数据查询操作次数大于预设阈值;或者,

所述数据查询操作次数大于预设阈值并且所述查询字段组合在前n个所述统计周期内的数据查询操作次数均大于所述阈值;或者,

所述数据查询操作次数大于预设阈值并且所述查询字段组合在当前累积时间段内的指定统计周期的数据查询操作次数的均值大于所述阈值;所述指定统计周期为当前累积时间段内除周期tmin和周期tmax之外的其他统计周期,其中,所述累积时间段由m个统计周期组成,所述周期tmin为当前累积时间段内所述查询字段组合的数据查询操作次数最少的统计周期,所述周期tmax为当前累积时间段内所述查询字段组合的数据查询操作次数最多的统计周期。

综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1