CN107239451A - 数据库索引创建方法和装置 - Google Patents
数据库索引创建方法和装置 Download PDFInfo
- Publication number
- CN107239451A CN107239451A CN201610181731.XA CN201610181731A CN107239451A CN 107239451 A CN107239451 A CN 107239451A CN 201610181731 A CN201610181731 A CN 201610181731A CN 107239451 A CN107239451 A CN 107239451A
- Authority
- CN
- China
- Prior art keywords
- data query
- query operation
- data
- operation number
- inquiry field
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 17
- 238000005259 measurement Methods 0.000 claims abstract description 37
- 238000004458 analytical method Methods 0.000 claims description 7
- 238000007405 data analysis Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 2
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据库索引创建方法和装置,其中,方法包括:当发生数据查询操作或预设的统计周期结束时,对数据查询操作统计数据进行分析,确定出数据查询操作次数满足预设自动创建索引条件的查询字段组合;根据所述查询字段组合,建立相应的数据表索引。采用本发明,可以提高数据查询性能。
Description
技术领域
本发明涉及数据库技术,特别是涉及一种数据库索引创建方法和装置。
背景技术
目前的应用程序大部分都使用数据库来存储底层数据,在应用程序运行过程中经常需要做大量的数据查询操作。当数据库数据量较大时,大量的数据查询操作就会存在查询性能差的问题。例如,查询特定数据结果需要时间过长,从而导致需要较长时间才能将数据结果返回客户端,极端情况下,当在一定时间内无法执行完查询时,会导致数据库超时错误,客户端无法获取数据结果从而出现错误页面。另外,查询特定数据需要大量的服务器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为当前累积时间段内所述查询字段组合的数据查询操作次数最多的统计周期。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种数据库索引创建方法,其特征在于,包括:
当发生数据查询操作或预设的统计周期结束时,对数据查询操作统计数据进行分析,确定出数据查询操作次数满足预设自动创建索引条件的查询字段组合;
对于每个没有相应数据表索引的所述查询字段组合,根据该查询字段组合建立数据表索引。
2.根据权利要求1所述的方法,其特征在于,当发生数据查询操作时,对数据查询操作统计数据进行分析包括:
获取所述数据查询操作中的查询字段组合;
计算在所述统计周期内以所述查询字段组合为查询条件的数据查询操作次数;
判断所述数据查询操作次数是否满足所述自动创建索引条件。
3.根据权利要求1所述的方法,其特征在于,当所述统计周期结束时,对数据查询操作统计数据进行分析包括:
在所述统计周期结束时,获取本周期中各数据查询操作中的查询字段组合,对于每种查询字段组合,计算本周期中以该查询字段组合为查询条件的数据查询操作次数;
判断每个所述数据查询操作次数是否满足所述自动创建索引条件。
4.根据权利要求1所述的方法,其特征在于,所述自动创建索引条件包括:
所述数据查询操作次数大于预设阈值;或者,
所述数据查询操作次数大于预设阈值并且所述查询字段组合在前N个所述统计周期内的数据查询操作次数均大于所述阈值;或者,
所述数据查询操作次数大于预设阈值并且所述查询字段组合在当前累积时间段内的指定统计周期的数据查询操作次数的均值大于所述阈值;所述指定统计周期为当前累积时间段内除周期Tmin和周期Tmax之外的其他统计周期,其中,所述累积时间段由M个统计周期组成,所述周期Tmin为当前累积时间段内所述查询字段组合的数据查询操作次数最少的统计周期,所述周期Tmax为当前累积时间段内所述查询字段组合的数据查询操作次数最多的统计周期。
5.一种数据库索引创建装置,其特征在于,包括:
数据分析模块,用于在发生数据查询操作或预设的统计周期结束时,对数据查询操作统计数据进行分析,确定出数据查询操作次数满足预设自动创建索引条件的查询字段组合;
索引创建模块,用于对于每个没有相应数据表索引的所述查询字段组合,则根据该查询字段组合建立数据表索引。
6.根据权利要求5所述的装置,其特征在于,
数据分析模块,用于当发生数据查询操作时,获取所述数据查询操作中的查询字段组合;计算在当前预设统计周期内以所述查询字段组合为查询条件的数据查询操作次数;判断所述数据查询操作次数是否满足所述自动创建索引条件。
7.根据权利要求5所述的装置,其特征在于,
数据分析模块,用于在所述统计周期结束时,获取本周期中各数据查询操作中的查询字段组合,对于每种查询字段组合,计算本周期中以该查询字段组合为查询条件的数据查询操作次数,并判断每个所述数据查询操作次数是否满足所述自动创建索引条件。
8.根据权利要求5所述的装置,所述自动创建索引条件包括:
所述数据查询操作次数大于预设阈值;或者,
所述数据查询操作次数大于预设阈值并且所述查询字段组合在前N个所述统计周期内的数据查询操作次数均大于所述阈值;或者,
所述数据查询操作次数大于预设阈值并且所述查询字段组合在当前累积时间段内的指定统计周期的数据查询操作次数的均值大于所述阈值;所述指定统计周期为当前累积时间段内除周期Tmin和周期Tmax之外的其他统计周期,其中,所述累积时间段由M个统计周期组成,所述周期Tmin为当前累积时间段内所述查询字段组合的数据查询操作次数最少的统计周期,所述周期Tmax为当前累积时间段内所述查询字段组合的数据查询操作次数最多的统计周期。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610181731.XA CN107239451A (zh) | 2016-03-28 | 2016-03-28 | 数据库索引创建方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610181731.XA CN107239451A (zh) | 2016-03-28 | 2016-03-28 | 数据库索引创建方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107239451A true CN107239451A (zh) | 2017-10-10 |
Family
ID=59983178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610181731.XA Pending CN107239451A (zh) | 2016-03-28 | 2016-03-28 | 数据库索引创建方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107239451A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109145004A (zh) * | 2018-08-29 | 2019-01-04 | 智慧互通科技有限公司 | 一种创建数据库索引的方法及装置 |
CN112685445A (zh) * | 2020-12-29 | 2021-04-20 | 杭州旷云金智科技有限公司 | 数据查询方法及装置、存储介质及电子设备 |
CN113590632A (zh) * | 2021-08-11 | 2021-11-02 | 平安普惠企业管理有限公司 | 数据库索引创建方法、装置、设备及介质 |
CN113760890A (zh) * | 2020-11-24 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 关系型数据库管理的方法和装置 |
WO2023078130A1 (zh) * | 2021-11-03 | 2023-05-11 | 中兴通讯股份有限公司 | 索引创建方法、装置和计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105045851A (zh) * | 2015-07-07 | 2015-11-11 | 福建天晴数码有限公司 | 根据日志分析自动创建数据库索引的方法及系统 |
CN105320679A (zh) * | 2014-07-11 | 2016-02-10 | 中国移动通信集团重庆有限公司 | 一种数据表索引集合生成方法及装置 |
-
2016
- 2016-03-28 CN CN201610181731.XA patent/CN107239451A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105320679A (zh) * | 2014-07-11 | 2016-02-10 | 中国移动通信集团重庆有限公司 | 一种数据表索引集合生成方法及装置 |
CN105045851A (zh) * | 2015-07-07 | 2015-11-11 | 福建天晴数码有限公司 | 根据日志分析自动创建数据库索引的方法及系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109145004A (zh) * | 2018-08-29 | 2019-01-04 | 智慧互通科技有限公司 | 一种创建数据库索引的方法及装置 |
CN113760890A (zh) * | 2020-11-24 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 关系型数据库管理的方法和装置 |
CN112685445A (zh) * | 2020-12-29 | 2021-04-20 | 杭州旷云金智科技有限公司 | 数据查询方法及装置、存储介质及电子设备 |
CN113590632A (zh) * | 2021-08-11 | 2021-11-02 | 平安普惠企业管理有限公司 | 数据库索引创建方法、装置、设备及介质 |
CN113590632B (zh) * | 2021-08-11 | 2023-12-19 | 北京云拓科技有限公司 | 数据库索引创建方法、装置、设备及介质 |
WO2023078130A1 (zh) * | 2021-11-03 | 2023-05-11 | 中兴通讯股份有限公司 | 索引创建方法、装置和计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107239451A (zh) | 数据库索引创建方法和装置 | |
CN108376143B (zh) | 一种新型的olap预计算系统及生成预计算结果的方法 | |
CN104778185B (zh) | 异常结构化查询语言sql语句确定方法及服务器 | |
CN103927346B (zh) | 基于数据量的查询连接方法 | |
CN109359188B (zh) | 一种组件编排方法和系统 | |
CN110968380B (zh) | 数据可视化方法及系统 | |
WO2018228049A1 (zh) | 数据库性能指标的监测方法、装置、设备及存储介质 | |
CN109254901B (zh) | 一种指标监测方法及系统 | |
CN113051147A (zh) | 一种数据库集群的监控方法、装置、系统、以及设备 | |
US20130347127A1 (en) | Database management by analyzing usage of database fields | |
CN110147470B (zh) | 一种跨机房数据比对系统及方法 | |
US20220269655A1 (en) | Design and implementation of data access metrics for automated physical database design | |
CN112000863B (zh) | 用户行为数据的分析方法、装置、设备和介质 | |
CN109669915A (zh) | 一种计算机任务管理方法、装置及相关设备 | |
CN114116872A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN108052599A (zh) | 一种支持特征查询的时序数据存储的方法和装置 | |
JP2008108154A (ja) | 稼働性能情報の管理システム | |
CN112381583A (zh) | 一种基于分布式内存计算技术的电力量费计算方法及装置 | |
CN112445833A (zh) | 一种分布式数据库的数据分页查询方法、装置和系统 | |
CN110888909A (zh) | 一种评估内容的数据统计处理方法及装置 | |
JP6201053B2 (ja) | 素性データ管理システム、および素性データ管理方法 | |
CN112231342A (zh) | 一种多条件分页查询优化方法、系统、终端及存储介质 | |
CN109063201B (zh) | 一种基于混合存储方案的impala在线交互式查询方法 | |
CN108090196B (zh) | 一种关键词管理方法和装置 | |
CN112765118A (zh) | 一种日志查询方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171010 |
|
RJ01 | Rejection of invention patent application after publication |