CN105045851A - 根据日志分析自动创建数据库索引的方法及系统 - Google Patents
根据日志分析自动创建数据库索引的方法及系统 Download PDFInfo
- Publication number
- CN105045851A CN105045851A CN201510392124.3A CN201510392124A CN105045851A CN 105045851 A CN105045851 A CN 105045851A CN 201510392124 A CN201510392124 A CN 201510392124A CN 105045851 A CN105045851 A CN 105045851A
- Authority
- CN
- China
- Prior art keywords
- index
- database
- row
- inquiry
- insert
- 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
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/901—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种根据日志分析自动创建数据库索引的方法,包括:创建数据库日志,记录对数据表进行的数据库操作,所述数据库操作包括查询、插入及修改;统计预设时间段内数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数;根据数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数计算查询、插入、修改的次数占比;根据查询、插入以及修改的次数占比生成索引列名;在预设时段内根据索引列名创建数据库索引;本发明还提供一种根据日志分析自动创建数据库索引的系统,能够对数据库自动创建最佳的索引,并进行动态更新。
Description
技术领域
本发明涉及数据库领域,尤其涉及一种根据日志分析自动创建数据库索引的方法及系统。
背景技术
目前数据库的索引都是通过人工根据系统的实际使用情况,或者根据日常的经验创建,并对其进行优化。然而由于访问的人随时都在变化,人为创建的静态索引可能只能应付一部分特定时段的场景,或者是过去的一些场景。而在特定时段之外的另外一些时段,或者未来变化的情况,之前创建的静态索引往往就不适用了。
发明内容
本发明所要解决的技术问题是:提供一种根据日志分析自动创建数据库索引的方法及系统,能够对数据库自动创建最佳的索引,并进行动态更新。
为了解决上述技术问题,本发明采用的技术方案为:
一种根据日志分析自动创建数据库索引的方法,包括:
创建数据库日志,记录对数据表进行的数据库操作,所述数据库操作包括查询、插入及修改;
统计预设时间段内数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数;
根据数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数计算查询、插入、修改的次数占比;
根据查询、插入以及修改的次数占比生成索引列名;
在预设时段内根据索引列名创建数据库索引。
上述根据日志分析自动创建数据库索引的方法的有益效果在于:创建数据库日志,记录对数据表中每一项内容的数据库操作,统计出预设时间段内对数据表每一列查询、插入及修改的次数,从而计算出对每一列的查询、插入及修改的次数占比,由于查询时利用索引可以提高查询速度,而插入和修改时利用索引则需要对索引进行修改降低了性能,因此根据查询、插入及修改的次数占比即可判断此列是否需要创建索引,从而根据计算出的查询、插入及修改的次数占比生成索引列名,并在预设时间段根据索引列名创建数据库索引,实现对数据库自动创建最佳的索引,并进行动态更新。
一种根据日志分析自动创建数据库索引的系统,包括:
创建模块,用于创建数据库日志,记录对数据表进行的数据库操作,所述数据库操作包括查询、插入及修改;
统计模块,用于统计预设时间段内数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数;
计算模块,用于根据数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数计算查询、插入、修改的次数占比;
索引列名生成模块,用于根据查询、插入以及修改的次数占比生成索引列名;
索引创建模块,用于在预设时段内根据索引列名创建数据库索引。
上述根据日志分析自动创建数据库索引的系统的有益效果在于:通过创建模块创建数据库日志,从而能够记录对数据表中每一项内容的数据库操作,进一步通过统计模块统计数据库操作的总次数以及对数据表的中每一列查询、插入和修改的次数,从而计算模块能够计算出查询、插入、修改的次数占比,索引列名生成模块根据计算模块计算出的次数占比生成索引列名并通过所以重建模块根据索引列名创建数据库索引,实现对数据库自动创建最佳的索引,并进行动态更新。
附图说明
图1为本发明实施例一根据日志分析自动创建数据库索引的方法流程图;
图2为本发明实施例二根据日志分析自动创建数据库索引的系统结构图。
标号说明:
1、创建模块;2、统计模块;3、计算模块;4、索引列名生成模块;5、索引创建模块;6、设置模块;61、第一统计模块;62、第一设置模块。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:通过创建数据库日志记录数据库操作,并计算查询、插入及修改的次数占比,根据查询、插入及修改的次数占比判断是否创建索引。
请参照图1,
一种根据日志分析自动创建数据库索引的方法,包括:
S1、创建数据库日志,记录对数据表进行的数据库操作,所述数据库操作包括查询、插入及修改;
S2、统计预设时间段内数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数;
S3、根据数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数计算查询、插入、修改的次数占比;
S4、根据查询、插入以及修改的次数占比生成索引列名;
S5、在预设时段内根据索引列名创建数据库索引。
上述根据日志分析自动创建数据库索引的方法的有益效果在于:创建数据库日志,记录对数据表中每一项内容的数据库操作,统计出预设时间段内对数据表每一列查询、插入及修改的次数,从而计算出对每一列的查询、插入及修改的次数占比,由于查询时利用索引可以提高查询速度,而插入和修改时利用索引则需要对索引进行修改降低了性能,因此根据查询、插入及修改的次数占比即可判断此列是否需要创建索引,从而根据计算出的查询、插入及修改的次数占比生成索引列名,并在预设时间段根据索引列名创建数据库索引,实现对数据库自动创建最佳的索引,并进行动态更新。
进一步的,所述“根据查询、插入以及修改的次数占比生成索引列名”具体为:
对查询次数占比高于50%的列创建索引列名;
对插入或修改次数占比高于50%的列不创建索引列名。
从上述描述可知,对查询次数占比高的列创建索引列名,插入或修改次数占比高的列不创建索引列名,既提高查询速度,又提高数据库性能。
进一步的,所述“根据查询、插入以及修改的次数占比生成索引列名”具体为:
对查询次数占比高于50%的列保存索引列名;
对插入或修改次数占比高于50%的列删除索引列名。
从上述描述可知,当已经存在数据库索引时,对查询次数占比高的列保存其索引列名,插入或修改次数占比高的列删除其索引列名,既提高查询速度,又提高数据库性能。
进一步的,所述预设时间段为一天。
进一步的,所述预设时段为预设时间段内数据库访问量最低的时段。
从上述描述可知,在访问量最低的时段,从而既能及时更新索引又不影响用户访问数据库。
请参照图2,
一种根据日志分析自动创建数据库索引的系统,包括:
创建模块1,用于创建数据库日志,记录对数据表进行的数据库操作,所述数据库操作包括查询、插入及修改;
统计模块2,用于统计预设时间段内数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数;
计算模块3,用于根据数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数计算查询、插入、修改的次数占比;
索引列名生成模块4,用于根据查询、插入以及修改的次数占比生成索引列名;
索引创建模块5,用于在预设时段内根据索引列名创建数据库索引。
上述根据日志分析自动创建数据库索引的系统的有益效果在于:通过创建模块1创建数据库日志,从而能够记录对数据表中每一项内容的数据库操作,进一步通过统计模块2统计数据库操作的总次数以及对数据表的中每一列查询、插入和修改的次数,从而计算模块3能够计算出查询、插入、修改的次数占比,索引列名生成模块4根据计算模块3计算出的次数占比生成索引列名并通过所以重建模块根据索引列名创建数据库索引,实现对数据库自动创建最佳的索引,并进行动态更新。
进一步的,所述根据日志分析自动创建数据库索引的系统还包括:设置模块6,用于设置预设时间段以及预设时段。
进一步的,所述设置模块6包括:
第一统计模块61,用于统计预设时间段内数据库的访问量;
第一设置模块62,用于设置数据库的访问量最低的时段为预设时段。
从上述描述可知,通过设置数据库的访问量最低的时段为预设时段,从而在数据库访问量最低的时段创建数据库索引,不影响用户正常访问数据库。
请参照图1,本发明的实施例一为:
一种根据日志分析自动创建数据库索引的方法,包括:
S1、创建数据库日志,记录对数据表进行的数据库操作,所述数据库操作包括查询、插入及修改;
S2、统计一天内数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数;
S3、根据数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数计算查询、插入、修改的次数占比;
S4、根据查询、插入以及修改的次数占比生成索引列名;具体为:对查询次数占比高于50%的列创建索引列名或者保存已有的索引列名;对插入或修改次数占比高于50%的列不创建索引列名或者删除已有的索引列名;
S5、在一天内数据库访问量最低的时段根据索引列名创建数据库索引。
例如,对一张10*3的数据表创建索引,创建日志记录,记录一天内对这张数据表进行的数据库操作,比如对第一行第二列进行查询,第五行第二列进行插入,第三行第一列进行修改,等等。统计每一列的查询、插入及修改次数以及次数占比,比如第一列查询占比70%,第二列查询占比85%,第三列插入或修改占比60%,则为第一列和第二列创建索引列名,第三列不创建索引列名,如果凌晨时段对该数据表基本上不访问,则在凌晨时段根据生成的索引列名为该数据表创建索引。
如果该数据表已经有索引,而第一列查询占比70%,第二列查询占比85%,第三列插入或修改占比60%,则保存原第一列和第二列的索引列名,删除原第三列的索引列名,根据新的索引列名为该数据表创建索引。
请参照图2,本发明的实施例二为:
一种根据日志分析自动创建数据库索引的系统,包括:
设置模块6,用于设置预设时间段以及预设时段;所述设置模块6包括:第一统计模块61,用于统计预设时间段内数据库的访问量;第一设置模块62,用于设置数据库的访问量最低的时段为预设时段。
创建模块1,用于创建数据库日志,记录对数据表进行的数据库操作,所述数据库操作包括查询、插入及修改;
统计模块2,用于统计预设时间段内数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数;
计算模块3,用于根据数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数计算查询、插入、修改的次数占比;
索引列名生成模块4,用于根据查询、插入以及修改的次数占比生成索引列名;
索引创建模块5,用于在预设时段内根据索引列名创建数据库索引。
综上所述,本发明提供的根据日志分析自动创建数据库索引的方法及系统,通过设置模块设置预设时间段和预设时段,创建模块创建数据库日志,从而能够记录对数据表中每一项内容的数据库操作,通过统计模块能够统计出预设时间段内对数据表每一列查询、插入、修改的次数,进而通过计算模块计算出每一列查询、插入、修改的次数占比,由于查询时利用索引可以提高查询速度,而插入和修改时利用索引则需要对索引进行修改降低了性能,因此根据查询、插入及修改的次数占比即可判断此列是否需要创建索引,因而通过索引列名生成模块根据查询、插入以及修改的次数占比生成索引列名;再通过索引创建模块在预设时段内根据索引列名创建数据库索引,既不会影响用户访问数据库,又自动创建和更新了索引。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种根据日志分析自动创建数据库索引的方法,其特征在于,包括:
创建数据库日志,记录对数据表进行的数据库操作,所述数据库操作包括查询、插入及修改;
统计预设时间段内数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数;
根据数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数计算查询、插入、修改的次数占比;
根据查询、插入以及修改的次数占比生成索引列名;
在预设时段内根据索引列名创建数据库索引。
2.根据权利要求1所述的根据日志分析自动创建数据库索引的方法,其特征在于,所述“根据查询、插入以及修改的次数占比生成索引列名”具体为:
对查询次数占比高于50%的列创建索引列名;
对插入或修改次数占比高于50%的列不创建索引列名。
3.根据权利要求1所述的根据日志分析自动创建数据库索引的方法,其特征在于,所述“根据查询、插入以及修改的次数占比生成索引列名”具体为:
对查询次数占比高于50%的列保存索引列名;
对插入或修改次数占比高于50%的列删除索引列名。
4.根据权利要求1所述的根据日志分析自动创建数据库索引的方法,其特征在于,所述预设时间段为一天。
5.根据权利要求1所述的根据日志分析自动创建数据库索引的方法,其特征在于,所述预设时段为预设时间段内数据库访问量最低的时段。
6.一种根据日志分析自动创建数据库索引的系统,其特征在于,包括:
创建模块,用于创建数据库日志,记录对数据表进行的数据库操作,所述数据库操作包括查询、插入及修改;
统计模块,用于统计预设时间段内数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数;
计算模块,用于根据数据库操作的总次数以及对数据表中每一列进行查询、插入、修改的次数计算查询、插入、修改的次数占比;
索引列名生成模块,用于根据查询、插入以及修改的次数占比生成索引列名;
索引创建模块,用于在预设时段内根据索引列名创建数据库索引。
7.根据权利要求6所述的根据日志分析自动创建数据库索引的系统,其特征在于,还包括:设置模块,用于设置预设时间段以及预设时段。
8.根据权利要求7所述的根据日志分析自动创建数据库索引的系统,其特征在于,所述设置模块包括:
第一统计模块,用于统计预设时间段内数据库的访问量;
第一设置模块,用于设置数据库的访问量最低的时段为预设时段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510392124.3A CN105045851A (zh) | 2015-07-07 | 2015-07-07 | 根据日志分析自动创建数据库索引的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510392124.3A CN105045851A (zh) | 2015-07-07 | 2015-07-07 | 根据日志分析自动创建数据库索引的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105045851A true CN105045851A (zh) | 2015-11-11 |
Family
ID=54452398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510392124.3A Pending CN105045851A (zh) | 2015-07-07 | 2015-07-07 | 根据日志分析自动创建数据库索引的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105045851A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017092583A1 (zh) * | 2015-12-01 | 2017-06-08 | 阿里巴巴集团控股有限公司 | 一种索引建立方法及设备 |
CN107239451A (zh) * | 2016-03-28 | 2017-10-10 | 北京京东尚科信息技术有限公司 | 数据库索引创建方法和装置 |
WO2018153210A1 (zh) * | 2017-02-22 | 2018-08-30 | 中兴通讯股份有限公司 | 一种自动创建索引的方法、装置及数据库系统 |
CN108664481A (zh) * | 2017-03-27 | 2018-10-16 | 中国移动通信集团内蒙古有限公司 | 一种数据检索方法及服务器 |
CN109086380A (zh) * | 2018-07-25 | 2018-12-25 | 光大环境科技(中国)有限公司 | 对历史数据进行压缩存储的方法及系统 |
CN112131433A (zh) * | 2020-08-20 | 2020-12-25 | 贝壳技术有限公司 | 区间计数查询方法及装置 |
CN112346950A (zh) * | 2020-12-04 | 2021-02-09 | 东北大学 | 基于查询日志分析的数据库索引性能估计系统与方法 |
CN112380416A (zh) * | 2020-11-25 | 2021-02-19 | 北京慕华信息科技有限公司 | 一种更新课程索引的方法、课程搜索方法和装置 |
CN113590632A (zh) * | 2021-08-11 | 2021-11-02 | 平安普惠企业管理有限公司 | 数据库索引创建方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103390066A (zh) * | 2013-08-08 | 2013-11-13 | 上海新炬网络技术有限公司 | 一种数据库全局性自动化优化预警装置及其处理方法 |
CN103810212A (zh) * | 2012-11-14 | 2014-05-21 | 阿里巴巴集团控股有限公司 | 一种数据库索引的自动创建方法及系统 |
US20140172867A1 (en) * | 2012-12-17 | 2014-06-19 | General Electric Company | Method for storage, querying, and analysis of time series data |
CN104714984A (zh) * | 2013-12-17 | 2015-06-17 | 中国移动通信集团湖南有限公司 | 一种数据库优化的方法和装置 |
-
2015
- 2015-07-07 CN CN201510392124.3A patent/CN105045851A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103810212A (zh) * | 2012-11-14 | 2014-05-21 | 阿里巴巴集团控股有限公司 | 一种数据库索引的自动创建方法及系统 |
US20140172867A1 (en) * | 2012-12-17 | 2014-06-19 | General Electric Company | Method for storage, querying, and analysis of time series data |
CN103390066A (zh) * | 2013-08-08 | 2013-11-13 | 上海新炬网络技术有限公司 | 一种数据库全局性自动化优化预警装置及其处理方法 |
CN104714984A (zh) * | 2013-12-17 | 2015-06-17 | 中国移动通信集团湖南有限公司 | 一种数据库优化的方法和装置 |
Non-Patent Citations (1)
Title |
---|
傅向华 等: ""一种基于数据访问流的数据库索引优化方法"", 《计算机工程》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106815260A (zh) * | 2015-12-01 | 2017-06-09 | 阿里巴巴集团控股有限公司 | 一种索引建立方法及设备 |
US20180276264A1 (en) * | 2015-12-01 | 2018-09-27 | Alibaba Group Holding Limited | Index establishment method and device |
WO2017092583A1 (zh) * | 2015-12-01 | 2017-06-08 | 阿里巴巴集团控股有限公司 | 一种索引建立方法及设备 |
US11003649B2 (en) * | 2015-12-01 | 2021-05-11 | Alibaba Group Holding Limited | Index establishment method and device |
CN107239451A (zh) * | 2016-03-28 | 2017-10-10 | 北京京东尚科信息技术有限公司 | 数据库索引创建方法和装置 |
WO2018153210A1 (zh) * | 2017-02-22 | 2018-08-30 | 中兴通讯股份有限公司 | 一种自动创建索引的方法、装置及数据库系统 |
CN108664481B (zh) * | 2017-03-27 | 2021-03-23 | 中国移动通信集团内蒙古有限公司 | 一种数据检索方法及服务器 |
CN108664481A (zh) * | 2017-03-27 | 2018-10-16 | 中国移动通信集团内蒙古有限公司 | 一种数据检索方法及服务器 |
CN109086380A (zh) * | 2018-07-25 | 2018-12-25 | 光大环境科技(中国)有限公司 | 对历史数据进行压缩存储的方法及系统 |
CN112131433A (zh) * | 2020-08-20 | 2020-12-25 | 贝壳技术有限公司 | 区间计数查询方法及装置 |
CN112131433B (zh) * | 2020-08-20 | 2021-10-29 | 贝壳找房(北京)科技有限公司 | 区间计数查询方法及装置 |
CN112380416A (zh) * | 2020-11-25 | 2021-02-19 | 北京慕华信息科技有限公司 | 一种更新课程索引的方法、课程搜索方法和装置 |
CN112346950A (zh) * | 2020-12-04 | 2021-02-09 | 东北大学 | 基于查询日志分析的数据库索引性能估计系统与方法 |
CN113590632A (zh) * | 2021-08-11 | 2021-11-02 | 平安普惠企业管理有限公司 | 数据库索引创建方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105045851A (zh) | 根据日志分析自动创建数据库索引的方法及系统 | |
CN105138501B (zh) | 一种可配置的动态报表生成方法及系统 | |
CN108536761A (zh) | 报表数据查询方法及服务器 | |
CN107145537B (zh) | 一种表格数据导入方法及系统 | |
CN107463635A (zh) | 一种图片数据查询的方法和分布式NewSQL数据库系统 | |
CN105488187A (zh) | 多源异构数据增量抽取的方法及装置 | |
CN101673287A (zh) | 一种sql语句生成方法及系统 | |
CN108415964A (zh) | 数据表查询方法、装置、终端设备及存储介质 | |
CN102651008A (zh) | 在关系数据库中组织数据记录的方法和设备 | |
CN104102652A (zh) | 一种非结构化数据存储系统及方法 | |
CN108536745A (zh) | 基于Shell的数据表提取方法、终端、设备及存储介质 | |
CN106055678A (zh) | 一种基于hadoop的全景大数据分布式存储方法 | |
US20230244653A1 (en) | Semantic compliance validation for blockchain | |
CN103036921A (zh) | 一种用户行为分析系统和方法 | |
CN109918369B (zh) | 数据存储方法及装置 | |
US20120323924A1 (en) | Method and system for a multiple database repository | |
US10997170B2 (en) | Local database cache | |
CN105468623A (zh) | 数据处理方法及装置 | |
Kvet et al. | Concept of temporal data retrieval: Undefined value management | |
CN102262636B (zh) | 生成数据库分区执行计划的方法及装置 | |
WO2020211258A1 (zh) | 区块链账本数据的查询方法、电子装置及存储介质 | |
CN100395752C (zh) | 一种报表数据采集系统和方法 | |
CN102402616A (zh) | 一种数据库集群的实现方法和系统 | |
Al-Kateb et al. | Adding a temporal dimension to the TPC-H benchmark | |
CN112163948A (zh) | 一种分润计算方法、系统、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151111 |