CN111241059A - 一种基于数据库的数据库优化方法及装置 - Google Patents

一种基于数据库的数据库优化方法及装置 Download PDF

Info

Publication number
CN111241059A
CN111241059A CN202010016077.3A CN202010016077A CN111241059A CN 111241059 A CN111241059 A CN 111241059A CN 202010016077 A CN202010016077 A CN 202010016077A CN 111241059 A CN111241059 A CN 111241059A
Authority
CN
China
Prior art keywords
database
optimization
preset
optimization scheme
scheme
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.)
Granted
Application number
CN202010016077.3A
Other languages
English (en)
Other versions
CN111241059B (zh
Inventor
周伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Huya Technology Co Ltd
Original Assignee
Guangzhou Huya Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Huya Technology Co Ltd filed Critical Guangzhou Huya Technology Co Ltd
Priority to CN202010016077.3A priority Critical patent/CN111241059B/zh
Publication of CN111241059A publication Critical patent/CN111241059A/zh
Application granted granted Critical
Publication of CN111241059B publication Critical patent/CN111241059B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例提供一种基于数据库的数据库优化方法及装置,涉及数据库处理技术领域,该方法包括:接收数据库的分析日志;判断分析日志是否符合预设的优化触发条件;当分析日志符合优化触发条件时,获取数据库的优化方案;根据优化方案对数据库进行优化。可见,实施这种实施方式,能够对数据库进行数据库优化,从而提高数据库的使用效率,提高数据库的自动化程度。

Description

一种基于数据库的数据库优化方法及装置
技术领域
本申请涉及数据库处理技术领域,具体而言,涉及一种基于数据库的数据库优化方法及装置。
背景技术
目前,随着数据库的兴起与普及,对于数据库的管理要求也变得越来越高,而对于数据的查询处理效率作为一项重要指标,更是使得所有相关人员所重视。然而,在实践中发现,数据库的查询处理过程中往往会因为慢查询的大量出现,而导致数据的查询效率受到一定的影响,从而使得相关人员必须进行相应的处理,才能保证在数据库在生产环境下的正常执行。可见,现有的数据库在使用的过程中需要人力的干预,从而导致了效率较低,自动化程度较弱的问题。
发明内容
本申请实施例的目的在于提供一种基于数据库的数据库优化方法及装置,能够对数据库进行数据库优化,从而提高数据库的使用效率,提高数据库的自动化程度。
本申请实施例第一方面提供了一种基于数据库的数据库优化方法,所述数据库优化方法包括:
接收所述数据库的分析日志;
判断所述分析日志是否符合预设的优化触发条件;
当所述分析日志符合所述优化触发条件时,获取所述数据库的优化方案;
根据所述优化方案对所述数据库进行优化。
在上述实现过程中,该基于数据库的数据库优化方法是基于数据慢查询提出来的,具体的,该数据库优化方法可以优先接收数据库的分析日志,以使该方法能够在分析日志中获取相关的数据来判断目前数据库是否需要进行数据库优化操作,其中,优化触发条件即用于判断是否需要优化的条件;在判断出数据库需要优化的时候,获取针对该数据库的优化方案,以使该方法可以根据该优化方案对数据库进行自动化优化。可见,实施这种实施方式,能够实现是否需要优化的自动化判断,并能够根据判断结果进行相应的优化处理,从而实现数据库的自动优化过程;同时,实施这种实施方式,还能够将优化后的数据库投入使用,以使数据库的使用效率明显提高,也能够实现数据库的自动化管理程度的提高。
进一步地,所述接收所述数据库的分析日志的步骤包括:
在预设时刻接收所述数据库的数据慢日志;
对所述数据慢日志包括的语句查询条件进行参数化,得到参数化条件;
对所述参数化条件进行分组统计得到统计结果,并确定所述统计结果为所述数据库的分析日志。
在上述实现过程中,分析日志的接收过程首先需要定时接收数据库的慢查询日志,然后再在该慢查询日志中提取出语句查询条件,并对该语句查询条件进行参数化处理,得到参数化条件,进而使得该方法可以根据该参数化条件来进行分组统计,统计出与各参数化条件对应的执行时间、次数以及占比等,并将上述这些内容作为统计结果写入该数据库的分析日志,从而实现最终的包括相应具体内容的分析日志的获取。可见,实施这种实施方式,能够在数据库的慢查询过程中查询到相应的查询语句,并在同时将该些查询语句参数化,以使分析过程可以依据该些参数化语句进行,从而使得分析日志的获取可以更加标准化,而在这其中,参数化的过程还能够提高数据库分析日志的获取稳定性。
进一步地,所述获取所述数据库的优化方案的步骤包括:
获取所述数据库的数据库结构和数据库数据;
根据预设的优化算法对所述数据库结构和数据库数据进行预优化处理,得到所述数据库的优化方案。
在上述实现过程中,该方法在获取数据库的优化方案的过程中,优先获取数据库的数据库结构和数据库数据,以使预设的优化算法可以根据该数据库结构和数据库数据进行一次预先的优化模拟处理,从而得到一个适合数据库优化的优化方案。可见,实施这种实施方式,能够通过数据库的具体数据与结构来计算出一个完全符合该数据库的优化方案,使得该优化方案与该数据库是密切相关的,保证的优化方案的可用性;另外,该种优化方案可以根据具体信息进行预先优化,从而得到一个最佳的优化方案,进而有利于数据库的优化效果。
进一步地,所述优化算法包括索引优化算法,所述优化方案包括索引优化方案。
在上述实现过程中,该优化算法为索引优化算法,而优化方案则对应为索引优化方案。可见,实施这种实施方式,能够应用于索引优化的情景当中,使得该方法具有更高的应用专一性,并在索引优化的场景中,该方法具有更佳的应用效果。
进一步地,所述方法还包括:
判断所述数据库结构和所述数据库数据是否符合预设的索引合理性标准;
当所述数据库结构和所述数据库数据符合预设的索引合理性标准时,触发执行所述根据预设的优化算法对所述数据库结构和数据库数据进行预优化处理,得到所述数据库的优化方案的步骤。
在上述实现过程中,该方法还可以在优化方案的获取步骤之前,预先进行一次索引合理性标准的符合判断,从而使得数据库优化方案可以是在数据库结构和数据库数据符合索引合理性标准的情况下进行获取得到的。可见,实施这种实施方式,能够在数据库优化方案获取之前进行一次是否获取的判断,而该是否获取的判断是针对数据库详情的判断,当数据库详情显示出该数据库的优化满足索引优化的合理性时,说明该数据库可以被索引优化,且在此基础上才能获取数据库的优化方案,从而能够保证优化方案获取的有效性,进而提高了数据库优化的针对性和对数据库进行优化的效果。
进一步地,所述方法还包括:
判断所述优化方案是否符合预设的索引优化标准;
当所述优化方案符合预设的索引优化标准时,触发执行所述根据所述优化方案对所述数据库进行优化的步骤。
在上述实现过程中,该方法可以在对数据库进行优化之前,优先判断优化方案是否符合预设的所以优化标准,从而使得数据库的优化方案是针对索引来进行优化的。可见,实施这种实施方式,能够在数据库优化前完成对优化方案的筛选,从而使得数据库优化能够针对索引内容,进而能够保证数据库的优化是自动化的、有针对性的并且还是有效的。
本申请实施例第二方面提供了一种基于数据库的数据库优化装置,所述数据库优化装置包括:
接收单元,用于接收所述数据库的分析日志;
判断单元,用于判断所述分析日志是否符合预设的优化触发条件;
获取单元,用于在所述分析日志符合所述优化触发条件时,获取所述数据库的优化方案;
优化单元,用于根据所述优化方案对所述数据库进行优化。
在上述实现过程中,该数据库优化装置首先通过接收单元接收数据库的分析日志,然后通过判断单元对分析日志进行优化触发判断,在判断单元得到的结果是分析日志满足优化触发条件时,该数据库优化装置则通过获取单元获取与数据库相匹配的优化方案,并在最后通过优化单元根据上述优化方案对数据库进行优化。可见,实施这种实施方式,该数据库优化装置可以通过四个单元来完成数据库的自动优化过程,从而实现数据库的优化自动化;另一方面,多个单元的协同工作可以使得该数据库优化装置可以准确完成每一项操作,从而提高数据库优化的可靠程度。
进一步地,所述接收单元包括:
接收子单元,用于在预设时刻接收所述数据库的数据慢日志;
参数化子单元,用于对所述数据慢日志包括的语句查询条件进行参数化,得到参数化条件;
确定子单元,用于对所述参数化条件进行分组统计得到统计结果,并确定所述统计结果为所述数据库的分析日志。
在上述实现过程中,接收单元包括的接收子单元可以接收到数据库的数据慢日志,并将该数据慢日志发送至接收单元包括的参数化子单元,以使参数化子单元将数据慢日志中的查询语句转化为参数化条件,并促使接收单元包括的确定子单元根据参数化条件进行整体方面的数据统计,并确定统计得到的结果为数据库的分析日志,进而完成分析日志的接收获取。可见,实施这种实施方式,数据库优化装置中的接收单元可以在接收到数据慢日志的基础上进行数据标准化处理,从而能够保证数据库的分析日志是标准化数据,从而为后续所有工作提供优化基础,为数据库的优化提高优化稳定性;同时,该接收单元还能够通过参数化条件准确获取相关信息,并生成最终的数据库分析日志,从而为后续的其他操作提供了准确的操作基础,进而提高了数据库优化装置的工作稳定性。
进一步地,所述获取单元包括:
获取子单元,用于在所述分析日志符合所述优化触发条件时,获取所述数据库的数据库结构和数据库数据;
预处理子单元,用于根据预设的优化算法对所述数据库结构和数据库数据进行预优化处理,得到所述数据库的优化方案。
在上述实现过程中,获取单元可以通过获取子单元获取数据库的数据库结构和数据库数据,以使预处理子单元可以根据数据库结构和数据库数据来模拟数据库的优化,得到数据库的优化方案。可见,实施这种实施方式,该获取单元可以根据数据库的具体情况获取到与之密切相关的优化方案,从而提高了该优化方案与数据库之间的关联程度,提高了该优化方案对于该数据库的优化专一性,进而使得该数据库在使用该优化方案进行优化的过程可以得到最佳的效果。
进一步地,所述获取单元还包括:
判断子单元,用于判断所述数据库结构和所述数据库数据是否符合预设的索引合理性标准;
所述预处理子单元,具体用于在所述数据库结构和所述数据库数据符合预设的索引合理性标准时,根据预设的优化算法对所述数据库结构和数据库数据进行预优化处理,得到所述数据库的优化方案。
在上述实现过程中,该数据库优化装置中的获取单元可以通过判断单元来判断数据库结构和数据库数据是否符合预设的索引合理性标准,从而保证预处理子单元的工作可以在数据库结构和数据库数据可以进行索引优化的前提下再生成数据库的优化方案。可见,实施这种实施方式,该数据库优化装置能够对数据库数据和数据库结构进行合理性判断,从而保证数据库的优化方案的获取过程是基于合理数据进行的,进而保证了数据库优化方案的合理性和可用性。
进一步地,所述判断单元还用于判断所述优化方案是否符合预设的索引优化标准;
所述优化单元,具体用于在所述优化方案符合预设的索引优化标准时,根据所述优化方案对所述数据库进行优化。
在上述实现过程中,判断单元还可以在优化单元进行数据库优化之前进行索引优化标准的符合性判断,从而实现数据库的优化是基于索引优化标准的。可见,实施这种实施方式,优化单元在优化之前可以在判断单元判断出优化方案是否为针对索引的优化方案,应在得到判断结果之后对数据库进行相关处理,从而保证数据库的优化是基于索引的索引优化,进而通过索引优化来实现数据库的自动化优化。
本申请实施例第三方面提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行本申请实施例第一方面中任一项所述的基于数据库的数据库优化方法。
本申请实施例第四方面提供了一种计算机可读存储介质,其存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行本申请实施例第一方面中任一项所述的基于数据库的数据库优化方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种基于数据库的数据库优化方法的流程示意图;
图2为本申请实施例提供的另一种基于数据库的数据库优化方法的流程示意图;
图3为本申请实施例提供的一种基于数据库的数据库优化装置的结构示意图;
图4为本申请实施例提供的另一种基于数据库的数据库优化装置的结构示意图;
图5为本申请实施例提供的一种具体的数据库优化方法的流程示意图;
图6为本申请实施例提供的一种数据库优化方法的软件架构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
实施例1
请参看图1,图1为本申请实施例提供了一种基于数据库的数据库优化方法的流程示意图。该方法可以应用于任何具有数据库的数据库管理场景当中,具体的,该方法可以应用于数据库中慢sql出现较为普遍的数据库中,以使较多的慢sql可以被自动化识别与处理,从而节约数据库的优化时间,便于数据库管理员执行更多的工作与任务。
具体来说,慢sql作为杀死数据库的主要因素,经常会外为数据库管理员和相关人员带来相当的麻烦。然而,虽然慢sql能够杀死数据库,但是这个过程并不是一条慢sql导致的,而是一堆慢sql来拖慢的。所以sql自动优化方法的提出迫在眉睫。目前的一些方案几乎都是需要研发或数据库管理员做人工二次确认,才能在生产环境执行。由此可知,sql优化仍需要人工干预,并非真正自动化。也正是因此,该方法提出了一种对慢sql的优化方法,其中,该基于数据库的数据库优化方法包括:
S101、接收数据库的分析日志。
本实施例中,数据库可以是任何一种数据库,对此本实施例中不作任何限定。
在本实施例中,该数据库通常会存在慢sql的困扰。
本实施例中,分析日志是针对数据库的分析日志,对于该分析日志的获取过程或生成过程,本实施例中不作任何限定。
S102、判断分析日志是否符合预设的优化触发条件,若是,则执行步骤S103~S104;若否,则结束本流程。
本实施例中,优化触发条件用于判断分析日志是否需要被优化。
在本实施例中,分析日志中所包括的慢sql并非需要完全优化,可以理解的是,分析日志中总会存在一些无伤大雅的慢sql(即造成影响可以被忽略的情况),这些内容,并非需要优化。
本实施例中,优化触发条件可以为场景化条件,即当分析日志符合某种场景时,确定分析日志是符合优化触发条件的。
在本实施例中,场景化条件可以根据数据库业务总结得到,对于该过程可以为计算可以为匹配,对此本实施例中不作任何限定、
在本实施例中,优化触发条件还可以是分析日志中包括相关业务告警的条件,还可以是其他表示数据库需要优化的条件。
在本实施例中,在分析日志的信息符合优化触发条件时,触发优化操作继续进行,举例来说,如数据库出现Thread_running、CPU等告警,则可以抽取时间占比超过20%(可配置)的sql进行优化。
在本实施例中,对于一个系统来说,并不是所有慢sql都需要进行优化,什么业务场景下需要优化、什么样的sql需要优化,这一点可以都需要根据实际情况进行分析、总结,得到可能会影响到数据库性能的几种场景,并对这些场景下的sql进行优化,从而实现减少人工干预的效果,也能够增加自动优化数据库带来的收益。
S103、获取数据库的优化方案。
本实施例中,数据库的优化程序当中存储有其相应的优化方案。
在本实施例中,数据库的优化方案是针对慢sql的索引优化方案。
在本实施例中,该获取过程可以是根据数据库信息进行计算,得到优化方案的过程。
S104、根据优化方案对数据库进行优化。
本实施例中,该优化过程可以被自动执行,从而实现数据库优化的效果。
本实施例中,结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
本实施例中,该方法的执行主体可以为计算机、服务器等计算装置,对此本实施例中不作任何限定。
在本实施例中,该方法的执行主体还可以为智能手机和平板等智能设备,对此本实施例中不作任何限定。
可见,实施图1所描述的基于数据库的数据库优化方法,能够优先接收数据库的分析日志,以使该方法能够在分析日志中获取相关的数据来判断目前数据库是否需要进行数据库优化操作,其中,优化触发条件即用于判断是否需要优化的条件;在判断出数据库需要优化的时候,获取针对该数据库的优化方案,以使该方法可以根据该优化方案对数据库进行自动化优化。可见,实施这种实施方式,能够实现自动判断数据库是否需要优化,并能够根据判断结果进行相应的优化处理,从而实现数据库的自动优化过程;同时,实施这种实施方式,还能够将优化后的数据库投入使用,以使数据库的使用效率明显提高,也能够实现数据库的自动化管理程度的提高;可见,该方法能够真正实现慢日志索引的自动优化,无需人工干预;还能够节省数据库管理员大约60%的sql优化时间,大大解放了数据库管理员的工作时间,提升了工作效率。
实施例2
请参看图2,图2为本申请实施例提供的另一种基于数据库的数据库优化方法的流程示意图。图2所描述的基于数据库的数据库优化方法的流程示意图是根据图1所描述的基于数据库的数据库优化方法的流程示意图进行改进得到的。其中,该基于数据库的数据库优化方法包括:
S201、在预设时刻接收数据库的数据慢日志。
本实施例中,数据慢日志对应慢sql日志。
本实施例中,预设时刻是用户预先设置好的固定时间或时间间隔,对此本实施例中不作任何限定。
本实施例中,对于数据慢日志的获取端口和终端不作任何限定。
S202、对数据慢日志包括的语句查询条件进行参数化,得到参数化条件。
本实施例中,数据慢日志中包括语句查询条件,而该语句查询条件通常是多、杂且无序的,因此参数化的过程可以将这些语句查询条件统一化、标准化,从而得到参数化条件。
在本实施例中,参数化条件用于获取相应的分析结果。
S203、对参数化条件进行分组统计得到统计结果,并确定统计结果为数据库的分析日志。
本实施例中,语句查询条件在分组之后,可以有针对性的获取相应的执行时间、次数、占比等数据,以使该些数据填充至数据库当中成为数据库的分析日志。
在本实施例中,该过程虽称分析,但多是数据的提取与筛选的过程,宏观角度可以理解为数据库在对数据进行分析,而具体来说,该过程可以理解为数据库相信信息的调用提取过程。
S204、判断分析日志是否符合预设的优化触发条件,若是,则执行步骤S205~S206;若否,则结束本流程。
本实施例中,优化触发条件用于判断分析日志是否需要被优化。
在本实施例中,分析日志中所包括的慢sql并非需要完全优化,可以理解的是,分析日志中总会存在一些无伤大雅的慢sql(即造成影响可以被忽略的情况),这些内容,并非需要优化。
本实施例中,优化触发条件可以为场景化条件,即当分析日志符合某种场景时,确定分析日志是符合优化触发条件的。
在本实施例中,场景化条件可以根据数据库业务总结得到,对于该过程可以为计算可以为匹配,对此本实施例中不作任何限定、
在本实施例中,优化触发条件还可以是分析日志中包括相关业务告警的条件,还可以是其他表示数据库需要优化的条件。
在本实施例中,在分析日志的信息符合优化触发条件时,触发优化操作继续进行,举例来说,如数据库出现Thread_running、CPU等告警,则可以抽取时间占比超过20%(可配置)的sql进行优化。
在本实施例中,thread_running状态变量记录了当前并发执行stmt/command的数量,执行前加1执行后减1。
在本实施例中,对于一个系统来说,并不是所有慢sql都需要进行优化,什么业务场景下需要优化、什么样的sql需要优化,这一点可以都需要根据实际情况进行分析、总结,得到可能会影响到数据库性能的几种场景,并对这些场景下的sql进行优化,从而实现减少人工干预的效果,也能够增加自动优化数据库带来的收益。
S205、获取数据库的数据库结构和数据库数据。
本实施例中,数据库结构和数据库数据皆是数据库特征的一部分,对此本实施例中对于数据库结构的类型以数据库数据的内容不作任何限定。
S206、判断数据库结构和数据库数据是否符合预设的索引合理性标准,若是,则执行步骤S207~S209;若否,则结束本流程。
本实施例中,数据库结构和数据库数据可以用于判断该数据库是否符合预设的索引合理性。
举例来说,该过程中如果数据库数据的索引数量(如8条)大于索引合理性标准(6条),则称之为该数据库不符合预设的索引合理性;另外,索引合理性标准还可以是单个索引的字段数量标准。
在本实施例中,索引合理性可以理解为数据库中的表合理性。
S207、根据预设的优化算法对数据库结构和数据库数据进行预优化处理,得到数据库的优化方案。
本实施例中,优化算法包括索引优化算法,优化方案包括索引优化方案。
在本实施例中,该方法是基于索引优化的提出的,对于非索引优化,本方法可能不具有最佳的效果甚至不能使用。
S208、判断优化方案是否符合预设的索引优化标准,若是,则执行步骤S209;若否,则结束本流程。
本实施例中,索引优化标准是筛选出针对索引的优化方案的过程。
在本实施例中,如果优化方案并非索引优化方案,那么该流程将直接结束。
S209、根据优化方案对数据库进行优化。
本实施例中,该优化过程可以被自动执行,从而实现数据库优化的效果。
请参见图5,图5为本申请实施例提供的一种具体的数据库优化方法的流程示意图;其中该方法涉及到的服务包括:
应用系统,server服务端,负责整体逻辑调度,采用flask开发;
agent客户端,负责采集数据库相关信息;
soar,是一种开源的sql自动优化工具,意为自动化及响应平台;
过滤服务,负责筛选和决策是否自动执行优化;
消息服务,负责发送操作信息到相关人员;
运维平台接口服务,负责对线上数据库进行变更;其中,
①步骤描述了agent客户端每天定时采集数据库相关信息;
②步骤描述了agent客户端每天定时分析并上报数据库慢日志到server服务端;该分析过程可以使用Percona数据库的pt-query-digest慢查询日志分析工具,而分析过程是先对查询语句的条件进行参数化(即对数据慢日志包括的语句查询条件进行参数化),然后对参数化以后的查询语句的条件进行分组统计,统计出各查询的执行时间、次数、占比等,作为server服务端获取到的分析日志;
③步骤描述了server服务端发送分析日志至触发器,以使触发器在发现相关业务出现告警或是满足需要优化的条件时,触发优化操作的继续进行;举例来说,在数据库出现Thread_running、CPU等告警,该方法则会抽取时间占比超过20%(可配置)的sql进行优化;
④步骤描述了Server服务端调用soar提取数据库数据进行sql优化操作的过程;
⑤步骤描述了测试数据库在数据库提取数据信息的过程;
⑥步骤描述了测试数据库上传数据信息至soar的过程;
⑦步骤描述了soar生成优化方案,并将优化方案上报到server服务端的过程;其中,soar是基于Go语言开发的智能sql优化改写工具,该soar融合了各类优化算法,最主要的是该soar引入了索引优化算法,以使soar可以根据表结构、表数据对复杂查询给出索引优化建议(可以有很多优化建议),从而通过较多的建议内容来确保索引优化方案的合理性;在此基础上,该过程还可以增加索引合理性的验证,举例来说,如果单表超过8个索引,或单个索引超过6个字段(数值可动态配置),出于表设计合理性,该过程将阻止索引优化操作的进行。
⑧步骤描述了server服务端调用过滤服务,筛选出针对索引的优化方案的过程;这类优化不需要研发改写sql,也不需要程序发版,可以直接通过数据库服务进行优化;
⑨步骤描述了该过滤服务可以筛选出适合索引优化的项目,若是非索引类优化,则会退出流程,如果属于索引类优化,且达到每天1440次数限制(次数可以设置),则继续下一步执行自动优化;
Figure BDA0002358500810000151
三个步骤描述了,在server服务端接收到信息可以对某sql进行索引优化时,调用运维平台接口,并在业务低峰时段生成工单自动执行;这里采用的是Percona的pt-online-schema-change工具,可在线执行表变更,且附加保护机制,确保了变更不会引起线上问题;同时调用消息服务接口,发送操作信息到数据库管理员、运维人员、研发人员等相关工作人员处。
实施这种实施方式,该方法能够通过过滤服务判断出哪些场景需要自动进行优化、哪些sql可以进行自动优化的问题,同时也能够确保索引优化的合理性,从而实现只通过触发器、过滤服务等逻辑,在确保无业务风险的情况下,安全有效的实现了数据库索引的自动化优化的效果。
请依据图5描述的内容参见图6,图6描述一种数据库优化方法的软件架构示意图,该软件架构可以用于执行该实施例描述的方法以及图5举例中描述的方法;其中,应用系统相当于server服务端,DB instance对应于上述步骤①②③④⑤⑥⑦。
可见,实施图2所描述的基于数据库的数据库优化方法,能够判断数据库是否需要被优化,以使优化处理是根据判断结果进行的,从而实现了对数据库的自动优化;同时,实施这种实施方式,还能够将优化后的数据库投入使用,以使数据库的使用效率明显提高,也能够实现数据库的自动化管理程度的提高;另外,实施这种实施方式,能够在数据库的慢查询过程中查询到相应的查询语句,并在同时将该些查询语句参数化,以使分析过程可以依据该些参数化语句进行,从而使得分析日志的获取可以更加标准化,而在这其中,参数化的过程还能够提高数据库分析日志的获取稳定性;实施这种实施方式,还能够通过数据库的具体数据与结构来计算出一个完全符合该数据库的优化方案,使得该优化方案与该数据库是密切相关的,保证的优化方案的可用性,同时,该种优化方案可以根据具体信息进行预先优化,从而得到一个最佳的优化方案,进而有利于数据库的优化效果;实施这种实施方式,能够应用于索引优化的情景当中,使得该方法具有更高的应用专一性,并在索引优化的场景中,该方法具有更佳的应用效果;实施这种实施方式,能够在数据库优化方案获取之前进行一次是否获取的判断,而该是否获取的判断是针对数据库详情的判断,当数据库详情显示出该数据库的优化满足索引优化的合理性时,说明该数据库可以被索引优化,且在此基础上才能获取数据库的优化方案,从而能够保证优化方案获取的有效性,进而提高了数据库优化的针对性和对数据库进行优化的效果;实施这种实施方式,能够在数据库优化前完成对优化方案的筛选,从而使得数据库优化能够针对索引内容,进而能够保证数据库的优化是自动化的、有针对性的并且还是有效的。
实施例3
请参看图3,图3为本申请实施例提供的一种基于数据库的数据库优化装置的结构示意图。其中,该基于数据库的数据库优化装置包括:
接收单元310,用于接收数据库的分析日志;
判断单元320,用于判断分析日志是否符合预设的优化触发条件;
获取单元330,用于在分析日志符合优化触发条件时,获取数据库的优化方案;
优化单元340,用于根据优化方案对数据库进行优化。
本实施例中,优化算法包括索引优化算法,优化方案包括索引优化方案。
本实施例中,数据库可以是任何一种数据库,对此本实施例中不作任何限定。
在本实施例中,该数据库通常会存在慢sql的困扰。
本实施例中,分析日志是针对数据库的分析日志,对于该分析日志的获取过程或生成过程,本实施例中不作任何限定。
本实施例中,优化触发条件用于判断分析日志是否需要被优化。
在本实施例中,分析日志中所包括的慢sql并非需要完全优化,可以理解的是,分析日志中总会存在一些无伤大雅的慢sql(即造成影响可以被忽略的情况),这些内容,并非需要优化。
本实施例中,优化触发条件可以为场景化条件,即当分析日志符合某种场景时,确定分析日志是符合优化触发条件的。
在本实施例中,场景化条件可以根据数据库业务总结得到,对于该过程可以为计算可以为匹配,对此本实施例中不作任何限定、
在本实施例中,优化触发条件还可以是分析日志中包括相关业务告警的条件,还可以是其他表示数据库需要优化的条件。
在本实施例中,在分析日志的信息符合优化触发条件时,触发优化操作继续进行,举例来说,如数据库出现Thread_running、CPU等告警,则可以抽取时间占比超过20%(可配置)的sql进行优化。
在本实施例中,对于一个系统来说,并不是所有慢sql都需要进行优化,什么业务场景下需要优化、什么样的sql需要优化,这一点可以都需要根据实际情况进行分析、总结,得到可能会影响到数据库性能的几种场景,并对这些场景下的sql进行优化,从而实现减少人工干预的效果,也能够增加自动优化数据库带来的收益。
本实施例中,数据库的优化程序当中存储有其相应的优化方案。
在本实施例中,数据库的优化方案是针对慢sql的索引优化方案。
在本实施例中,该获取过程可以是根据数据库信息进行计算,得到优化方案的过程。
本实施例中,该优化过程可以被自动执行,从而实现数据库优化的效果。
本实施例中,对于基于数据库的数据库优化装置的解释说明可以参照实施例1或实施例2中的描述,对此本实施例中不再多加赘述。
可见,实施图3所描述的基于数据库的数据库优化装置,能够通过四个单元来完成数据库的自动优化过程,从而实现数据库的优化自动化;另一方面,多个单元的协同工作可以使得该数据库优化装置可以准确完成每一项操作,从而提高数据库优化的可靠程度。
实施例4
请参看图4,图4为本申请实施例提供的另一种基于数据库的数据库优化装置的结构示意图。图4所描述的基于数据库的数据库优化装置的结构示意图是根据图3所描述的基于数据库的数据库优化装置的结构示意图进行改进得到的。其中,上述接收单元310包括:
接收子单元311,用于在预设时刻接收数据库的数据慢日志;
参数化子单元312,用于对数据慢日志包括的语句查询条件进行参数化,得到参数化条件;
确定子单元313,用于对参数化条件进行分组统计得到统计结果,并确定统计结果为数据库的分析日志。
作为一种可选的实施方式,获取单元330包括:
获取子单元331,用于在分析日志符合优化触发条件时,获取数据库的数据库结构和数据库数据;
预处理子单元332,用于根据预设的优化算法对数据库结构和数据库数据进行预优化处理,得到数据库的优化方案。
作为一种可选的实施方式,获取单元331还包括:
判断子单元333,用于判断数据库结构和数据库数据是否符合预设的索引合理性标准;
预处理子单元332,具体用于在数据库结构和数据库数据符合预设的索引合理性标准时,根据预设的优化算法对数据库结构和数据库数据进行预优化处理,得到数据库的优化方案。
作为一种可选的实施方式,判断单元320还用于判断优化方案是否符合预设的索引优化标准;
优化单元340,具体用于在优化方案符合预设的索引优化标准时,根据优化方案对数据库进行优化。
本实施例中,对于基于数据库的数据库优化装置的解释说明可以参照实施例1或实施例2中的描述,对此本实施例中不再多加赘述。
可见,实施图4所描述的基于数据库的数据库优化装置,数据库优化装置中的接收单元可以在接收到数据慢日志的基础上进行数据标准化处理,从而能够保证数据库的分析日志是标准化数据,从而为后续所有工作提供优化基础,为数据库的优化提高优化稳定性;同时,该接收单元还能够通过参数化条件准确获取相关信息,并生成最终的数据库分析日志,从而为后续的其他操作提供了准确的操作基础,进而提高了数据库优化装置的工作稳定性;上述获取单元还能够根据数据库的具体情况获取到与之密切相关的优化方案,从而提高了该优化方案与数据库之间的关联程度,提高了该优化方案对于该数据库的优化专一性,进而使得该数据库在使用该优化方案进行优化的过程可以得到最佳的效果;还能够对数据库数据和数据库结构进行合理性判断,从而保证数据库的优化方案的获取过程是基于合理数据进行的,进而保证了数据库优化方案的合理性和可用性;优化单元还能够在优化之前可以在判断单元判断出优化方案是否为针对索引的优化方案,应在得到判断结果之后对数据库进行相关处理,从而保证数据库的优化是基于索引的索引优化,进而通过索引优化来实现数据库的自动化优化。
本申请实施例提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行本申请实施例1或实施例2中任一项基于数据库的数据库优化方法。
本申请实施例提供了一种计算机可读存储介质,其存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行本申请实施例1或实施例2中任一项基于数据库的数据库优化方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (13)

1.一种基于数据库的数据库优化方法,其特征在于,所述数据库优化方法包括:
接收所述数据库的分析日志;
判断所述分析日志是否符合预设的优化触发条件;
当所述分析日志符合所述优化触发条件时,获取所述数据库的优化方案;
根据所述优化方案对所述数据库进行优化。
2.根据权利要求1所述的基于数据库的数据库优化方法,其特征在于,所述接收所述数据库的分析日志的步骤包括:
在预设时刻接收所述数据库的数据慢日志;
对所述数据慢日志包括的语句查询条件进行参数化,得到参数化条件;
对所述参数化条件进行分组统计得到统计结果,并确定所述统计结果为所述数据库的分析日志。
3.根据权利要求1所述的基于数据库的数据库优化方法,其特征在于,所述获取所述数据库的优化方案的步骤包括:
获取所述数据库的数据库结构和数据库数据;
根据预设的优化算法对所述数据库结构和数据库数据进行预优化处理,得到所述数据库的优化方案。
4.根据权利要求3所述的基于数据库的数据库优化方法,其特征在于,所述优化算法包括索引优化算法,所述优化方案包括索引优化方案。
5.根据权利要求3所述的基于数据库的数据库优化方法,其特征在于,所述方法还包括:
判断所述数据库结构和所述数据库数据是否符合预设的索引合理性标准;
当所述数据库结构和所述数据库数据符合预设的索引合理性标准时,触发执行所述根据预设的优化算法对所述数据库结构和数据库数据进行预优化处理,得到所述数据库的优化方案的步骤。
6.根据权利要求1所述的基于数据库的数据库优化方法,其特征在于,所述方法还包括:
判断所述优化方案是否符合预设的索引优化标准;
当所述优化方案符合预设的索引优化标准时,触发执行所述根据所述优化方案对所述数据库进行优化的步骤。
7.一种基于数据库的数据库优化装置,其特征在于,所述数据库优化装置包括:
接收单元,用于接收所述数据库的分析日志;
判断单元,用于判断所述分析日志是否符合预设的优化触发条件;
获取单元,用于在所述分析日志符合所述优化触发条件时,获取所述数据库的优化方案;
优化单元,用于根据所述优化方案对所述数据库进行优化。
8.根据权利要求7所述的基于数据库的数据库优化装置,其特征在于,所述接收单元包括:
接收子单元,用于在预设时刻接收所述数据库的数据慢日志;
参数化子单元,用于对所述数据慢日志包括的语句查询条件进行参数化,得到参数化条件;
确定子单元,用于对所述参数化条件进行分组统计得到统计结果,并确定所述统计结果为所述数据库的分析日志。
9.根据权利要求7所述的基于数据库的数据库优化装置,其特征在于,所述获取单元包括:
获取子单元,用于在所述分析日志符合所述优化触发条件时,获取所述数据库的数据库结构和数据库数据;
预处理子单元,用于根据预设的优化算法对所述数据库结构和数据库数据进行预优化处理,得到所述数据库的优化方案。
10.根据权利要求9所述的基于数据库的数据库优化装置,其特征在于,所述获取单元还包括:
判断子单元,用于判断所述数据库结构和所述数据库数据是否符合预设的索引合理性标准;
所述预处理子单元,具体用于在所述数据库结构和所述数据库数据符合预设的索引合理性标准时,根据预设的优化算法对所述数据库结构和数据库数据进行预优化处理,得到所述数据库的优化方案。
11.根据权利要求7所述的基于数据库的数据库优化装置,其特征在于,所述判断单元还用于判断所述优化方案是否符合预设的索引优化标准;
所述优化单元,具体用于在所述优化方案符合预设的索引优化标准时,根据所述优化方案对所述数据库进行优化。
12.一种电子设备,其特征在于,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行权利要求1至6中任一项所述的基于数据库的数据库优化方法。
13.一种可读存储介质,其特征在于,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行权利要求1至6任一项所述的基于数据库的数据库优化方法。
CN202010016077.3A 2020-01-07 2020-01-07 一种基于数据库的数据库优化方法及装置 Active CN111241059B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010016077.3A CN111241059B (zh) 2020-01-07 2020-01-07 一种基于数据库的数据库优化方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010016077.3A CN111241059B (zh) 2020-01-07 2020-01-07 一种基于数据库的数据库优化方法及装置

Publications (2)

Publication Number Publication Date
CN111241059A true CN111241059A (zh) 2020-06-05
CN111241059B CN111241059B (zh) 2023-07-28

Family

ID=70872243

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010016077.3A Active CN111241059B (zh) 2020-01-07 2020-01-07 一种基于数据库的数据库优化方法及装置

Country Status (1)

Country Link
CN (1) CN111241059B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111881145A (zh) * 2020-07-31 2020-11-03 北京致远互联软件股份有限公司 业务数据表的处理方法、装置、服务器及存储介质
CN112506951A (zh) * 2020-12-07 2021-03-16 海南车智易通信息技术有限公司 数据库慢查询日志的处理方法、服务器、计算设备和系统
CN113282574A (zh) * 2021-07-26 2021-08-20 云和恩墨(北京)信息技术有限公司 基于sql优化的数据库运行控制方法、系统及存储介质
CN113760890A (zh) * 2020-11-24 2021-12-07 北京沃东天骏信息技术有限公司 关系型数据库管理的方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103390066A (zh) * 2013-08-08 2013-11-13 上海新炬网络技术有限公司 一种数据库全局性自动化优化预警装置及其处理方法
CN106919678A (zh) * 2017-02-27 2017-07-04 武汉珞佳伟业科技有限公司 一种数据库查询优化系统及方法
CN107480296A (zh) * 2017-08-30 2017-12-15 杭州绿湾网络科技有限公司 基于sql的数据库性能分析方法和装置
CN108170775A (zh) * 2017-12-26 2018-06-15 上海新炬网络技术有限公司 一种数据库sql索引动态优化方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103390066A (zh) * 2013-08-08 2013-11-13 上海新炬网络技术有限公司 一种数据库全局性自动化优化预警装置及其处理方法
CN106919678A (zh) * 2017-02-27 2017-07-04 武汉珞佳伟业科技有限公司 一种数据库查询优化系统及方法
CN107480296A (zh) * 2017-08-30 2017-12-15 杭州绿湾网络科技有限公司 基于sql的数据库性能分析方法和装置
CN108170775A (zh) * 2017-12-26 2018-06-15 上海新炬网络技术有限公司 一种数据库sql索引动态优化方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111881145A (zh) * 2020-07-31 2020-11-03 北京致远互联软件股份有限公司 业务数据表的处理方法、装置、服务器及存储介质
CN113760890A (zh) * 2020-11-24 2021-12-07 北京沃东天骏信息技术有限公司 关系型数据库管理的方法和装置
CN112506951A (zh) * 2020-12-07 2021-03-16 海南车智易通信息技术有限公司 数据库慢查询日志的处理方法、服务器、计算设备和系统
CN112506951B (zh) * 2020-12-07 2023-02-24 海南车智易通信息技术有限公司 数据库慢查询日志的处理方法、服务器、计算设备和系统
CN113282574A (zh) * 2021-07-26 2021-08-20 云和恩墨(北京)信息技术有限公司 基于sql优化的数据库运行控制方法、系统及存储介质
CN113282574B (zh) * 2021-07-26 2021-10-22 云和恩墨(北京)信息技术有限公司 基于sql优化的数据库运行控制方法、系统及存储介质

Also Published As

Publication number Publication date
CN111241059B (zh) 2023-07-28

Similar Documents

Publication Publication Date Title
CN111241059A (zh) 一种基于数据库的数据库优化方法及装置
CN106293891B (zh) 多维投资指标监督方法
EP3425524A1 (en) Cloud platform-based client application data calculation method and device
CN111539633A (zh) 一种业务数据质量的稽核方法、系统、装置和存储介质
CN107247811B (zh) 基于Oracle数据库的SQL语句性能优化方法及装置
CN111459698A (zh) 一种数据库集群故障自愈方法及装置
WO2018153210A1 (zh) 一种自动创建索引的方法、装置及数据库系统
CN113051147A (zh) 一种数据库集群的监控方法、装置、系统、以及设备
CN110674014A (zh) 一种确定异常查询请求的方法及装置
CN110399268A (zh) 一种异常数据检测的方法、装置及设备
CN110895537A (zh) 自由查询权限控制的方法及装置
CN117271481B (zh) 数据库自动优化方法及设备
CN113297249A (zh) 慢查询语句的识别和分析、查询语句的统计方法及装置
CN112286958A (zh) 数据库查询表达式的处理方法和系统
CN112526905B (zh) 一种针对指标异常的处理方法及系统
CN110704472A (zh) 数据查询统计方法及装置
CN110196868A (zh) 基于分布式的工单流程监控方法
CN106599130B (zh) 选择干预关系型数据库管理系统的多个索引的方法及装置
CN110543418B (zh) 一种数据库性能测试方法、系统及存储介质
CN110888909B (zh) 一种评估内容的数据统计处理方法及装置
CN111831528A (zh) 一种计算机系统日志关联方法及相关装置
CN112434063B (zh) 一种基于时间序列数据库的监控数据的处理方法
CN114077532A (zh) 一种sql语句执行效率检测方法及装置
CN114020446A (zh) 一种跨多引擎的路由处理方法、装置、设备及存储介质
CN113835986B (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
GR01 Patent grant
GR01 Patent grant