一种索引自动优化方法及装置制造方法及图纸

技术编号:23343690 阅读:21 留言:0更新日期:2020-02-15 03:59
本申请公开了一种索引自动优化的方法及装置,包括:采集慢查询进程日志信息;其中,所述慢查询进程为执行时间超过预设时间的进程;对所述慢查询进程日志信息进行分析,确定错误原因;其中,错误原因是根据预先存储的日志信息异常情况和错误原因对照关系确定的;根据所述错误原因选择对应的优化方案进行优化。通过对查询进程的实时监控及循环检测可以实现数据库中索引的故障检测和自动优化,防止数据查询业务因索引的错误使用导致的性能降低。

An automatic index optimization method and device

【技术实现步骤摘要】
一种索引自动优化方法及装置
本专利技术涉及数据搜索领域,尤其涉及一种索引自动优化方法及装置。
技术介绍
随着互联网技术的发展,数据查询在越来越多的场景下得到了应用。在数据查询系统中,用户可以向服务器发送查询指令,服务器从数据库中查询对应的数据。但是随着数据库中存储总信息量的增加,传统的数据查询检索方法速度会大幅度降低,无法满足现有的数据检索要求。因此,为了优化数据查询的速度,数据库可以采用索引的方式进行数据查询。其中,索引是在数据库中创建的一些用于指向数据库中某一列数据具体存储位置的存储结构。其作用类似书籍的目录,在数据查询时可以直接从索引中寻找符合查找条件的数据的具体存储位置。由于索引中可以不包含数据的具体内容,可以大幅度提升查询速度。但是,数据库在使用索引进行数据查询时,有小概率会错误使用索引,这些错误会不断累积。随着数据查询业务量的增加和系统长时间持续运行,数据库会累积大量错误的情况,导致查询速度降低,严重影响用户的体验。目前解决索引错误需要研发人员手动排除,不但耗费人力物力,而且还存在效率低、无法完全解决索引错误的问题。
技术实现思路
有鉴于此,本申请实施例提供了一种索引自动优化方法及装置,旨在不需要研发人员参与的情况下自动监测查询进程,并针对索引出现的问题进行自动优化。为了实现上述目的,本专利技术提供了以下技术方案:一种索引自动优化方法,所述方法包括:采集慢查询进程日志信息;其中,所述慢查询进程为执行时间超过预设时间的查询进程;对所述慢查询进程日志信息进行分析,确定错误原因;其中,错误原因是根据预先存储的日志信息异常情况和错误原因对照关系确定的;根据所述错误原因选择对应的优化方案进行优化。可选地,所述采集慢查询日志信息包括:设定慢查询进程预设时间;实时记录查询进程执行时间;根据所述执行时间从进程池中选择执行时间超过预设时间的慢查询进程。可选地,所述慢查询进程日志信息至少包括以下的一个或多个:索引信息、锁定时间、返回记录、访问计数、查询时间、平均锁定时间。可选地,所述错误原因至少包括一下的一个或多个:索引为空、索引聚合、锁竞争、索引不合理。可选地,所述方法还包括:当所述优化方案无效时,删除现有索引并重建索引。可选地,所述优化方案至少包括一下的一个或多个:创建新索引、重建索引,顺序删除索引、删除部分索引内容。可选地,所述方法还包括:在完成对索引的优化后,对所述慢查询进程进行循环检测。一种索引自动优化装置,所述装置包括:日志记录单元,用于记录慢查询进程的日志信息;日志分析单元,用于对所述慢查询进程日志信息进行分析,确定错误原因;优化单元,用于根据错误原因选择优化方案进行优化。可选地,所述日志记录单元包括:时间设定单元,用于获取并设定预设时间;进程监控单元,用于记录查询进程执行时间;比较单元,用于根据所述执行时间判断所述进程是否为慢查询进程;日志输出单元,用于将所述慢查询进程的日志信息输出至指定路径。可选地,所述优化单元包括:优化方案选择单元,用于根据错误原因选择对应的优化方案;优化方案执行单元,用于执行所述优化方案。本申请实施例提供了一种索引自动优化方法及装置。通过采集慢查询进程日志信息,并对所述慢查询进程日志信息进行分析,确定错误原因,再根据所述错误原因选择对应的优化方案进行优化。可以实现数据库中索引的故障检测和自动优化,防止数据查询业务因索引的错误使用导致的性能降低。附图说明为更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请一实施例提供的索引自动优化方法图。图2为本申请一实施例提供的慢查询进程确认流程图。图3为本申请一实施例提供的索引优化的流程图。图4为本申请一实施例提供索引自动优化装置图。具体实施方式本申请实施例提供了一种索引自动优化的方法及装置。可以理解,本申请提供的索引自动优化方法可以应用于任意具有索引和数据查询能力的数据库或数据查询系统。其中,数据库可以是独立的服务器,也可以是分布式数据库。为了便于理解,本申请主要使用关系型数据库为主题进行实例性说明。在现有的关系型数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构。它可以是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。当表中有大量记录时,若要对表进行查询,可以在表中建立索引,然后在索引中找到符合查询条件的索引值,最后通过保存在索引中的ROWID(相当于页码)快速找到表中对应的记录。但是,在数据查询系统上线之后,随着数据查询业务量的增加和系统长时间持续运行,会发现数据查询系统运行越来越缓慢,严重影响用户的体验。导致查询业务运行缓慢的原因有很多,其中数据库运行缓慢是其中一个主要原因,而数据库运行缓慢的主要原因是由于索引的错误使用(80%)导致对应的查询性能低效,从而严重影响业务系统的吞吐量。目前的方案都是人为参与完成,浪费大量的时间并且定位效率太差,并且对研发人员要求较高,会大幅度增加数据查询系统的运维成本。进一步地,由于研发人员的主观原因,每次对索引进行优化时,难以将数据查询系统中索引的全部问题一次解决,可能存在遗留的问题。同时也无法实现索引的实时优化。针对现有的数据查询系统存在的问题,为了给出数据库中自动优化索引的实现方案,本申请实施例提供了一种索引自动优化方法及装置。以下结合说明书附图对本专利技术的优选实施例进行说明。图1为本申请一实施例提供的一种索引自动优化方法流程图,包括:101:采集慢查询进程日志信息。在本实施例中,数据库可以查询采集慢查询进程的日志信息。具体地,可以在服务器的配置文件中配置慢查询进程筛选条件和慢查询进程日志输出路径。以数据库配置参数的形式在数据库后台对全部数据查询进程进行监控。并记录采集到的慢查询进程日志日志信息。其中,慢查询进程是根据慢查询进程筛选条件从进程池中选择的进程。例如,可以将慢查询进程筛选条件设为某个预设时间。服务器可以在后台实时监控数据库进程池中全部查询进程的运行时间。预设时间可以是研发人员在创建数据库时就预先设计好的,也可以是服务器根据进程的实际情况自动设置的,代表了某些查询进程理论上的运行时间。除此以外,配置文件中还可以有慢查询进程日志信息的输出地址,在找到慢查询进程时,可以自动将其日志信息输出到输出地址对应的存储位置中,例如,当检测到进程池中某个查询进程运行时间超过预设时间时本文档来自技高网...

【技术保护点】
1.一种索引自动优化方法,其特征在于,所述方法包括:/n采集慢查询进程日志信息;其中,所述慢查询进程为执行时间超过预设时间的查询进程;/n对所述慢查询进程日志信息进行分析,确定错误原因;其中,错误原因是根据预先存储的日志信息异常情况和错误原因对照关系确定的;/n根据所述错误原因选择对应的优化方案进行优化。/n

【技术特征摘要】
1.一种索引自动优化方法,其特征在于,所述方法包括:
采集慢查询进程日志信息;其中,所述慢查询进程为执行时间超过预设时间的查询进程;
对所述慢查询进程日志信息进行分析,确定错误原因;其中,错误原因是根据预先存储的日志信息异常情况和错误原因对照关系确定的;
根据所述错误原因选择对应的优化方案进行优化。


2.根据权利要求1所述的方法,其特征在于,所述采集慢查询日志信息包括:
设定慢查询进程预设时间;
实时记录查询进程执行时间;
根据所述执行时间从进程池中选择执行时间超过预设时间的慢查询进程。


3.根据权利要求1所述的方法,其特征在于,所述慢查询进程日志信息至少包括以下的一个或多个:
索引信息、锁定时间、返回记录、访问计数、查询时间、平均锁定时间。


4.根据权利要求1所述的方法,其特征在于,所述错误原因至少包括一下的一个或多个:
索引为空、索引聚合、锁竞争、索引不合理。


5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述优化方案无效时,删除现有索引并重建索引。

...

【专利技术属性】
技术研发人员:孙辽东
申请(专利权)人:广东浪潮大数据研究有限公司
类型:发明
国别省市:广东;44

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

1