CN113760964A - 一种用于处理数据库的慢查询的方法 - Google Patents

一种用于处理数据库的慢查询的方法 Download PDF

Info

Publication number
CN113760964A
CN113760964A CN202010507046.8A CN202010507046A CN113760964A CN 113760964 A CN113760964 A CN 113760964A CN 202010507046 A CN202010507046 A CN 202010507046A CN 113760964 A CN113760964 A CN 113760964A
Authority
CN
China
Prior art keywords
database
slow query
statement
test
solution
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
Application number
CN202010507046.8A
Other languages
English (en)
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.)
China Telecom Corp Ltd
Original Assignee
China Telecom Corp 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 China Telecom Corp Ltd filed Critical China Telecom Corp Ltd
Priority to CN202010507046.8A priority Critical patent/CN113760964A/zh
Publication of CN113760964A publication Critical patent/CN113760964A/zh
Pending legal-status Critical Current

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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • 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/24Querying
    • G06F16/242Query formulation
    • G06F16/243Natural language query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种用于处理数据库的慢查询的方法,包括:开启所述数据库的慢查询日志;从所述慢查询日志中获取慢查询语句;基于所述慢查询语句,建立新数据库,所述新数据库具有与所述数据库的表结构相同的表结构;对所述慢查询语句执行语义分析以生成针对所述新数据库的测试语句;将候选解决方案应用于所述新数据库,并利用所述测试语句对已应用所述候选解决方案的所述新数据库进行测试;以及如果对已应用所述候选解决方案的所述新数据库的测试通过,则将所述候选解决方案应用于所述数据库。

Description

一种用于处理数据库的慢查询的方法
技术领域
本公开涉及数据库技术领域,具体而言涉及一种用于处理数据库的慢查询的方法。
背景技术
数据库按照数据结构来组织、存储和管理数据。数据库是多个关联的表的集合,而表是数据的矩阵。通过为数据库中的数据建立索引,并且在查询信息时使用索引,可以快速访问数据库的表中的特定信息。
在利用索引查询信息时,可能会出现错误,并且这些错误可能会不断累积。随着查询业务量的不断增长和系统的持续运行,错误的累计可能会导致查询速度的降低,进而影响系统的整体运行。
可以对数据库开启慢查询日志功能,以记录执行时间过长或没有索引的语句以及与其相关联的信息。通过及时有效地解决慢查询,可以确保系统的正常和高效运行。
对于数据库,当前的常见处理方法是采用慢查询监控工具,并且在监控到慢查询日志警告之后进行人工解决。
这种处理方法能够应对大部分的慢查询情况,但是需要消耗大量的人工成本,可能存在人工误差,因此对于进行人工解决的人员提出了较高的要求。而且,处理过程可能对业务服务器造成影响,还可能会引起数据库索引的错乱。
因此,存在对能够自动解决慢查询并且能够尽量避免对数据库和服务器造成影响的慢查询处理方法的需求。
发明内容
根据本公开的第一方面,提供了一种用于处理数据库的慢查询的方法,该方法包括:开启所述数据库的慢查询日志;从慢查询日志中获取慢查询语句;基于所述慢查询语句,建立新数据库,所述新数据库具有与所述数据库的表结构相同的表结构;对所述慢查询语句执行语义分析以生成针对所述新数据库的测试语句;将候选解决方案应用于所述新数据库,并利用所述测试语句对已应用所述候选解决方案的所述新数据库进行测试;以及如果对已应用所述候选解决方案的所述新数据库的测试通过,则将所述候选解决方案应用于所述数据库。
根据本公开的第二方面,提供了一种非瞬态存储介质,其上存储有程序,所述程序当由计算机执行时,使所述计算机执行本公开记载的方法。
根据本公开的第三方面,提供了一种用于处理数据库的慢查询的装置,包括存储器和处理器,所述存储器中存储有程序,所述程序当由处理器执行时,使得所述处理器执行本公开记载的方法。
根据本公开的实施例的优点在于,可以有效减少系统存在的慢查询数量,从而将人工成本仅用于更复杂的优化上,并且可以形成可重复使用的解决方案,一次解决类似问题,提高系统响应速度,减少人工成本。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得更为清楚。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1示出了根据本公开的一个示例性实施例的系统的示意图。
图2示出了根据本公开的一个示例性实施例的用于处理数据库的慢查询的方法的流程图。
图3示出了根据本公开的一个示例性实施例的用于处理数据库的慢查询的方法的部分详细流程图。
图4示出了根据本公开的一个示例性实施例的用于处理数据库的慢查询的方法的部分详细流程图。
图5示出了根据本公开的另一个示例性实施例的用于处理数据库的慢查询的方法的流程图。
图6示出了可以实现根据本公开的实施例的计算设备的示例性配置。
注意,在以下说明的实施方式中,有时在不同的附图之间共同使用同一附图标记来表示相同部分或具有相同功能的部分,而省略其重复说明。在一些情况中,使用相似的标号和字母表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
为了便于理解,在附图等中所示的各结构的位置、尺寸及范围等有时不表示实际的位置、尺寸及范围等。因此,本公开并不限于附图等所公开的位置、尺寸及范围等。
具体实施方式
下面将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。也就是说,本文中的结构及方法是以示例性的方式示出,来说明本公开中的结构和方法的不同实施例。然而,本领域技术人员将会理解,它们仅仅说明可以用来实施的本公开的示例性方式,而不是穷尽的方式。此外,附图不必按比例绘制,一些特征可能被放大以示出具体组件的细节。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
图1示出了根据本公开的一个示例性实施例的系统的示意图,该系统包括数据库101、处理模块103和新数据库105。
数据库101可以是MySQL数据库。MySQL是一种关系型数据库管理系统,将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,从而提高速度和灵活性。
当数据库101出现慢查询时,处理模块103对慢查询日志进行处理,建立新数据库105,并在新数据库105上测试慢查询的各种解决方案。具体过程在下文详述。
对于MySQL数据库,一些慢查询判断方式、慢查询原因及其对应的解决方案列表如表1所示。其中,情况1和情况2较为常见。
Figure BDA0002526925030000041
Figure BDA0002526925030000051
表1常见的慢查询判断方式、慢查询原因及其对应的解决方案
图2示出了根据本公开的一个示例性实施例的用于处理数据库的慢查询的方法的流程图。该方法具体可以由处理模块103执行。该方法可以包括如下步骤:
在步骤S201处,开启数据库101的慢查询日志。具体而言,可以在配置文件中配置与慢查询相关联的参数,从而在数据库后台监控数据查询进程并记录慢查询日志信息。
在步骤S202处,从数据库101的慢查询日志中获取慢查询语句。可以持续监测数据库101的慢查询日志表的变化,如有变化就获取日志中的相关信息,并根据从日志获取的信息来判断某个语句是否为慢查询语句。
具体而言,该步骤S202可以进一步包括如图3中所示的步骤,其中:
在步骤S301处,判断该语句的单次执行时长是否大于或等于阈值时长。例如,可以判断该语句的单次执行的时间是否超过1秒。
如果该语句的单次执行时长大于或等于阈值时长,则在步骤S303处,判断该语句为慢查询语句。例如,如果某个语句的单次执行时长超过1秒,则该语句为慢查询语句。
否则,如果该语句的单次执行时长小于阈值时长,则在步骤S302处,继续判断该语句的在一段时间内的执行次数是否大于或等于阈值次数。例如,可以判断该语句在一天内是否执行超过10次,或者可以判断该语句在一周内是否执行超过30次。
如果该语句的在一段时间内的执行次数大于或等于阈值次数,则到步骤S303处,判断该语句为慢查询语句。例如,如果某个语句在一天内执行超过10次,或者该语句在一周内执行超过30次,则该语句为慢查询语句。
否则,如果该语句的在一段时间内的执行次数小于阈值次数,则该语句不是慢查询语句。可以结束对语句是否为慢查询语句的判断,或者可以继续对与数据库101的慢查询日志相关联的其他语句进行判断。
继续回到如图2所示的方法,在步骤S203中,基于在步骤S202中获得的慢查询语句来建立新的数据库103。
具体而言,该步骤S203可以进一步包括如图4中所示的步骤,其中:
在步骤S401处,通过语义分析去除在步骤S202中获得的慢查询语句中定义的临时表;在步骤S402处,获取数据库101的与在步骤S202中获得的慢查询语句相关联的表结构,该表结构可以通过数据库自带工具完整导出;在步骤S403处,在新数据库103中复制数据库101的上述表结构,并且所复制的表结构可以包括索引;在步骤S404处,根据该表结构中的字段类型,生成随机数据,所生成的随机数据的量可以达到十万的数量级。
通过以上步骤,可以建立新数据库103,为候选解决方式的测试进行准备,以免对业务服务器造成影响。如果直接对数据库101进行各种候选解决方式的测试,则会造成对业务服务器资源的占用,并且不合理的解决方案可能会导致数据库索引错乱、死锁等。
继续回到如图2所示的方法,在步骤S204处,对在步骤S202中获得的慢查询语句进行语义分析,以生成针对新数据库103的测试语句。该步骤S204中的通过语义分析生成测试语句可以与步骤S401中通过语义分析去除临时表一起进行,利用在先步骤中的语义分析的结果来生成针对新数据库103的测试语句。
在步骤S205处,将候选解决方案应用于所生成的新数据库103。该候选解决方案可以是表1中包括的解决方案之一,也可以是慢查询的其他解决方案。该候选解决方案可以包括在程序配置文件中。
在步骤S206处,利用测试语句对已应用候选解决方案的新数据库103进行测试。
在步骤S207处,判断对新数据库103的测试是否通过。例如,可以判断测试语句对于已应用候选解决方案的新数据库103是否是慢查询语句,判断方法可以类似于图3所示的方法。如果测试语句对于已应用候选解决方案的新数据库103不是慢查询语句,则测试通过;否则,测试未通过。例如,可以判断测试语句的执行时长是否短于原来的慢查询语句的执行时长。如果执行时长变短,则测试通过;否则,测试未通过。
如果判断对新数据库103的测试通过,则在步骤S208处,将候选解决方案应用于数据库101。
因为在该候选解决方案与数据库101相关联的新数据库103中测试通过,所以该候选解决方案可能是能够在数据库101中解决慢查询的解决方案。
图5图示了根据本公开的另一个示例性实施例的用于处理数据库的慢查询的方法。如图所示,图5中包括与图2相同的一些步骤,这些步骤在此不再详述。
图5所示的示例性实施例与图2所示的示例性实施例的不同之处在于,图2所示的方法仅对一种候选解决方案进行测试,图5所示的方法可以自动对解决方案序列中的多个候选解决方案进行测试。该解决方案序列可以包括表1中的解决方案,也可以包括慢查询的未包括在表1中的其他解决方案。该解决方案序列中的多个候选解决方案也可以由用户自定义。此外,该解决方案序列中的多个候选解决方案的排列顺序可以由用户自定义,或者可以通过其他方式决定,例如,可以按照解决方案的成功次数由高到低排列。图5所示的方法可以依次对解决方案序列中的候选解决方案进行测试,直到测试成功或者已对解决方案序列中的所有解决方案进行测试为止。
具体而言,除了与图2相同的步骤之外,图5中所示的方法还包括如下步骤:
在步骤S208处将候选解决方案应用于数据库101之后,在S501处,进一步验证候选解决方案是否能够在数据库101中解决慢查询。具体而言,可以利用之前在步骤S202中获得的从数据库101的慢查询日志中获取的慢查询语句来对已在步骤S208处应用候选解决方案的数据库101进行测试。
在步骤S502处,判断对数据库101的测试是否通过。例如,可以判断在步骤S202中获得的慢查询语句对于已应用候选解决方案的数据库101是否仍然是慢查询语句,判断方法可以类似于图3所示的方法。如果该慢查询语句对于已应用候选解决方案的数据库101不是慢查询语句,则测试通过;否则,测试未通过。例如,可以判断该慢查询语句的执行时长是否短于在对数据库101应用候选解决方案之前的执行时长。如果执行时长变短,则测试通过;否则,测试未通过。
如果判断对数据库101的测试通过,则在步骤S503处,候选解决方案成功。接着,在步骤S504处,通知管理员测试结果。
否则,如果判断对数据库101的测试未通过,则在步骤S506处,将已应用候选解决方案的数据库101和新数据库103还原到未应用候选解决方案的状态,以重新在数据库101和新数据库103上对其他候选解决方案进行测试。例如,如果候选解决方案对应于表1中的情况1中的解决方案,即增加对应索引,则将已应用候选解决方案的数据库101和新数据库103还原到未应用候选解决方案的状态即为从数据库101和新数据库103中删除所增加的索引。
接着,在步骤S507处,判断是否已经对解决方案序列中所包括的所有候选解决方案进行测试。
如果已经对解决方案序列中所包括的所有候选解决方案进行测试,则所有候选解决方案均不能处理数据库101的慢查询,测试失败。此时可以继续到步骤S504处,通知管理员测试结果。
否则,如果尚未对解决方案序列中所包括的所有候选解决方案进行测试,则在S508处将解决方案序列中的下一个候选解决方案作为候选解决方案,再次进行如上所述的测试过程。
此外,在S207处,如果判断对新数据库103的测试未过,即该候选解决方案不能解决新数据库103的慢查询,则在步骤S505处,已应用候选解决方案的新数据库103还原到未应用候选解决方案的状态,以重新在新数据库103上对其他候选解决方案进行测试。例如,如果候选解决方案对应于表1中的情况1中的解决方案,即增加对应索引,则将已应用候选解决方案的新数据库103还原到未应用候选解决方案的状态即为从新数据库103中删除所增加的索引。
接着,继续到S507处以判断是否已经对解决方案序列中所包括的所有候选解决方案进行测试。
与图5所示的实施例对应的一段示例性程序及其注释如下所示:
Figure BDA0002526925030000091
Figure BDA0002526925030000101
上述方法通过语义分析复制所需的数据表的表结构并构建新的数据库作为实验环境,在不影响现有业务的情况下自动判断出现慢查询的原因,并根据判断得到的原因将多种解决方案中的经测试通过的解决方案反馈到正式业务中,例如,可以向数据库自动添加索引。该方法能够在减少对人工的要求的情况下自动解决数据库慢查询问题。
此外,还存在根据本公开的又一个实施例,其将上述实施例中的方法整合为数据库的接口(interface),从而允许用户通过interface的方式自定义解决方案。用户只需要按照interface的要求进行配置即可。
图6示出了可以实现根据本公开的实施例的计算设备600的示例性配置。计算设备600是可以应用本公开的上述方面的硬件设备的实例。计算设备600可以是被配置为执行处理和/或计算的任何机器。计算设备600可以是但不限制于工作站、服务器、台式计算机、膝上型计算机、平板计算机、个人数据助手(PDA)、智能电话、车载计算机或以上组合。
如图6所示,计算设备600可以包括可能经由一个或多个接口与总线602连接或通信的一个或多个元件。总线602可以包括但不限于,工业标准架构(Industry StandardArchitecture,ISA)总线、微通道架构(Micro Channel Architecture,MCA)总线、增强ISA(EISA)总线、视频电子标准协会(VESA)局部总线、以及外设组件互连(PCI)总线等。计算设备600可以包括例如一个或多个处理器604、一个或多个输入设备606、以及一个或多个输出设备608。一个或多个处理器604可以是任何种类的处理器,并且可以包括但不限于一个或多个通用处理器或专用处理器(诸如专用处理芯片)。输入设备606可以是能够向计算设备输入信息的任何类型的输入设备,并且可以包括但不限于鼠标、键盘、触摸屏、麦克风和/或远程控制器。输出设备608可以是能够呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。
计算设备600还可以包括或被连接至非暂态存储设备614,该非暂态存储设备614可以是任何非暂态的并且可以实现数据存储的存储设备,并且可以包括但不限于盘驱动器、光存储设备、固态存储器、软盘、柔性盘、硬盘、磁带或任何其他磁性介质、压缩盘或任何其他光学介质、缓存存储器和/或任何其他存储芯片或模块、和/或计算机可以从其中读取数据、指令和/或代码的其他任何介质。计算设备600还可以包括随机存取存储器(RAM)610和只读存储器(ROM)612。ROM 612可以以非易失性方式存储待执行的程序、实用程序或进程。RAM 610可提供易失性数据存储,并存储与计算设备600的操作相关的指令。计算设备600还可包括耦接至数据链路618的网络/总线接口616。网络/总线接口616可以是能够启用与外部装置和/或网络通信的任何种类的设备或系统,并且可以包括但不限于调制解调器、网络卡、红外线通信设备、无线通信设备和/或芯片集(诸如蓝牙TM设备、1302.11设备、WiFi设备、WiMax设备、蜂窝通信设施等)。
可单独地或以任何组合方式来使用前述实施方案的各个方面、实施方案、具体实施或特征。可由软件、硬件或硬件与软件的组合来实现前述实施方案的各个方面。
例如,前述实施方案可体现为计算机可读介质上的计算机可读代码。计算机可读介质为可存储数据的任何数据存储设备,所述数据其后可由计算机系统读取。计算机可读介质的示例包括只读存储器、随机存取存储器、CD-ROM、DVD、磁带、硬盘驱动器、固态驱动器和光学数据存储设备。计算机可读介质还可分布在网络耦接的计算机系统中使得计算机可读代码以分布式方式来存储和执行。
例如,前述实施方案可采用硬件电路的形式。硬件电路可以包括组合式逻辑电路、时钟存储设备(诸如软盘、触发器、锁存器等)、有限状态机、诸如静态随机存取存储器或嵌入式动态随机存取存储器的存储器、定制设计电路、可编程逻辑阵列等的任意组合。
在一个实施方案中,可以通过用诸如Verilog或VHDL的硬件描述语言(HDL)编码电路描述来实现根据本公开的硬件电路。可以针对给定集成电路制造技术设计的单元库合成HDL描述,并可以出于定时、功率和其他原因修改,以获得最终的设计数据库,可以将最终的设计数据库传输到工厂以通过半导体制造系统生产集成电路。半导体制造系统可通过(例如在可包括掩膜的晶片上)沉积半导体材料、移除材料、改变所沉积材料的形状、(例如通过掺杂材料或利用紫外处理修改介电常数)对材料改性等等来生产集成电路。集成电路可以包括晶体管并还可以包括其他电路元件(例如,诸如电容器、电阻器、电感器等无源元件)以及晶体管和电路元件之间的互连。一些实施方案可以实现耦接在一起的多个集成电路,以实现硬件电路,和/或可以在一些实施方案中使用离散元件。
本发明公开了一种用于处理数据库的慢查询的方法,包括:开启所述数据库的慢查询日志;从所述慢查询日志中获取慢查询语句;基于所述慢查询语句,建立新数据库,所述新数据库具有与所述数据库的表结构相同的表结构;对所述慢查询语句执行语义分析以生成针对所述新数据库的测试语句;将候选解决方案应用于所述新数据库,并利用所述测试语句对已应用所述候选解决方案的所述新数据库进行测试;以及如果对已应用所述候选解决方案的所述新数据库的测试通过,则将所述候选解决方案应用于所述数据库。
在一种实施方式中,在该方法中,建立新数据库包括:获取所述数据库的与所述慢查询语句相关联的表结构;在所述新数据库中复制所述表结构;以及根据所述表结构中的字段类型,生成随机数据。
在一种实施方式中,在该方法中,建立新数据库还包括:在获取所述表结构之前,通过语义分析去掉所述慢查询语句中定义的临时表。
在一种实施方式中,该方法还包括:利用所述慢查询语句对已应用所述候选解决方案的所述数据库进行测试;以及如果对已应用所述候选解决方案的所述数据库的测试通过,则所述候选解决方案成功,并且结束测试。
在一种实施方式中,该方法还包括:如果对已应用所述候选解决方案的所述数据库的测试未通过,则将所述新数据库和所述数据库还原到未应用所述候选解决方案的状态,使用解决方案序列中的下一个候选解决方案重新对所述新数据库和所述数据库进行测试;以及如果已经对所述解决方案序列中的所有候选解决方案进行测试,则结束测试。
在一种实施方式中,该方法还包括:如果对已应用所述候选解决方案的所述新数据库的测试未通过,则将所述新数据库还原到未应用所述候选解决方案的状态,使用解决方案序列中的下一个候选解决方案重新对所述新数据库进行测试;以及如果已经对所述解决方案序列中的所有候选解决方案进行测试,则结束测试。
在一种实施方式中,在该方法中,所述解决方案序列中的候选解决方案按照成功的次数由高到低排序。
在一种实施方式中,在该方法中,所述解决方案序列是可自定义的。
在一种实施方式中,该方法还包括:在结束测试之后,通知管理员测试结果。
在一种实施方式中,在该方法中,获取慢查询语句包括:从所述慢查询日志获取语句的单次执行时长;以及如果所述单次执行时长超过阈值时长,则判断所述语句是慢查询语句。
在一种实施方式中,在该方法中,获取慢查询语句包括:从所述慢查询日志获取语句在一段时间内的执行次数;以及如果所述执行次数超过阈值次数,则判断所述语句是慢查询语句。
本发明还公开了一种非瞬态存储介质,其上存储有程序,其特征在于,当所述程序由计算机执行时,使所述计算机执行如上所述的方法。
本发明还公开了一种用于处理数据库的慢查询的装置,包括存储器和处理器,所述存储器中存储有程序,所述程序当由处理器执行时,使得所述处理器执行如上所述的方法。
虽然已通过示例详细展示了本公开的一些具体实施例,但是本领域技术人员应当理解,上述示例仅意图是说明性的而不限制本公开的范围。应该认识到的是,前述方法中的一些步骤不一定按照图示的顺序执行,而是它们可以被同时、以不同顺序或以重叠方式执行。此外,本领域技术人员可以根据需要增加一些步骤或省略一些步骤。前述系统中的一些部件不是必须按照图示的布置,本领域技术人员可以根据需要增加一些部件或省略一些部件。本领域技术人员应该理解,上述实施例可以在不脱离本公开的范围和实质的情况下被修改。本公开的范围是通过所附的权利要求限定的。

Claims (13)

1.一种用于处理数据库的慢查询的方法,包括:
开启所述数据库的慢查询日志;
从所述慢查询日志中获取慢查询语句;
基于所述慢查询语句,建立新数据库,所述新数据库具有与所述数据库的表结构相同的表结构;
对所述慢查询语句执行语义分析以生成针对所述新数据库的测试语句;
将候选解决方案应用于所述新数据库,并利用所述测试语句对已应用所述候选解决方案的所述新数据库进行测试;以及
如果对已应用所述候选解决方案的所述新数据库的测试通过,则将所述候选解决方案应用于所述数据库。
2.如权利要求1所述的方法,其中,建立新数据库包括:
获取所述数据库的与所述慢查询语句相关联的表结构;
在所述新数据库中复制所述表结构;以及
根据所述表结构中的字段类型,生成随机数据。
3.如权利要求2所述的方法,其中,建立新数据库还包括:
在获取所述表结构之前,通过语义分析去掉所述慢查询语句中定义的临时表。
4.如权利要求1所述的方法,还包括:
利用所述慢查询语句对已应用所述候选解决方案的所述数据库进行测试;以及
如果对已应用所述候选解决方案的所述数据库的测试通过,则所述候选解决方案成功,并且结束测试。
5.如权利要求4所述的方法,还包括:
如果对已应用所述候选解决方案的所述数据库的测试未通过,则将所述新数据库和所述数据库还原到未应用所述候选解决方案的状态,使用解决方案序列中的下一个候选解决方案重新对所述新数据库和所述数据库进行测试;以及
如果已经对所述解决方案序列中的所有候选解决方案进行测试,则结束测试。
6.如权利要求1所述的方法,还包括:
如果对已应用所述候选解决方案的所述新数据库的测试未通过,则将所述新数据库还原到未应用所述候选解决方案的状态,使用解决方案序列中的下一个候选解决方案重新对所述新数据库进行测试;以及
如果已经对所述解决方案序列中的所有候选解决方案进行测试,则结束测试。
7.如权利要求5或6所述的方法,其中,所述解决方案序列中的候选解决方案按照成功的次数由高到低排序。
8.如权利要求5或6所述的方法,其中,所述解决方案序列是可自定义的。
9.如权利要求4-6中任一项所述的方法,还包括:
在结束测试之后,通知管理员测试结果。
10.如权利要求1所述的方法,其中,获取慢查询语句包括:
从所述慢查询日志获取语句的单次执行时长;以及
如果所述单次执行时长超过阈值时长,则判断所述语句是慢查询语句。
11.如权利要求1或10所述的方法,其中,获取慢查询语句包括:
从所述慢查询日志获取语句在一段时间内的执行次数;以及
如果所述执行次数超过阈值次数,则判断所述语句是慢查询语句。
12.一种非瞬态存储介质,其上存储有程序,其特征在于,当所述程序由计算机执行时,使所述计算机执行如权利要求1至11中的任一项所述的方法。
13.一种用于处理数据库的慢查询的装置,包括存储器和处理器,所述存储器中存储有程序,所述程序当由处理器执行时,使得所述处理器执行如权利要求1至11中的任一项所述的方法。
CN202010507046.8A 2020-06-05 2020-06-05 一种用于处理数据库的慢查询的方法 Pending CN113760964A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010507046.8A CN113760964A (zh) 2020-06-05 2020-06-05 一种用于处理数据库的慢查询的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010507046.8A CN113760964A (zh) 2020-06-05 2020-06-05 一种用于处理数据库的慢查询的方法

Publications (1)

Publication Number Publication Date
CN113760964A true CN113760964A (zh) 2021-12-07

Family

ID=78785124

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010507046.8A Pending CN113760964A (zh) 2020-06-05 2020-06-05 一种用于处理数据库的慢查询的方法

Country Status (1)

Country Link
CN (1) CN113760964A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114327268A (zh) * 2021-12-27 2022-04-12 北京云思智学科技有限公司 一种应用于kv存储的自适应防护方法、装置及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114327268A (zh) * 2021-12-27 2022-04-12 北京云思智学科技有限公司 一种应用于kv存储的自适应防护方法、装置及存储介质

Similar Documents

Publication Publication Date Title
Maly et al. Systematic characterization of physical defects for fault analysis of MOS IC cells
CN109062794B (zh) 一种软件测评结果的确定方法、装置及电子设备
CN108491326B (zh) 测试行为重组方法、装置及存储介质
US8196077B2 (en) Cell-library-for-statistical-timing-analysis creating apparatus and statistical-timing analyzing apparatus
TW201015364A (en) Method and apparatus for merging EDA coverage logs of coverage data
US11994979B2 (en) Smart regression test selection for software development
CN111159040A (zh) 一种测试数据生成方法、装置、设备及存储介质
CN117907812B (zh) 电路检测方法及装置、电子设备、存储介质、程序产品
US20080077552A1 (en) Systems and methods for analyzing multiple states in one or more groups of data
CN113760964A (zh) 一种用于处理数据库的慢查询的方法
CN112800704B (zh) 基于功能buffer的芯片后端改版方法、装置及计算机设备
EP3239867A1 (en) System and method for optimizing component placement in a battery design
US20120011481A1 (en) Hierarchical Finite State Machine Generation For Power State Behavior in an Electronic Design
US10127192B1 (en) Analytic system for fast quantile computation
US9672317B2 (en) Quality of results system
CN107193736B (zh) 测试方法、装置、电子设备以及存储介质
CN117453437A (zh) 数据库语句处理方法、装置、计算机设备和存储介质
CN112257359B (zh) 用于数据波形的调试方法、装置、调试系统以及存储介质
US6854102B1 (en) System and method of acquiring delay, setup and hold values for integrated circuit cells
Kellou-Menouer et al. On-line versioned schema inference for large semantic web data sources
US12124787B2 (en) System and method for automatic generation of device-based design rules and corresponding design rule checking (DRC) codes
US20230144064A1 (en) System and method for automatic generation of device-based design rules and corresponding design rule checking (drc) codes
US10156610B2 (en) On-chip sequence profiler
US11300614B1 (en) Save and restore register
US20240273271A1 (en) Verifying nonoverlapping transactions described by assertions for sequential implications

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