CN112347100A - 数据库索引优化方法、装置、计算机设备和存储介质 - Google Patents

数据库索引优化方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN112347100A
CN112347100A CN202011163223.1A CN202011163223A CN112347100A CN 112347100 A CN112347100 A CN 112347100A CN 202011163223 A CN202011163223 A CN 202011163223A CN 112347100 A CN112347100 A CN 112347100A
Authority
CN
China
Prior art keywords
index
database
database operation
carrying
candidate
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
CN202011163223.1A
Other languages
English (en)
Other versions
CN112347100B (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.)
Hangzhou Dbappsecurity Technology Co Ltd
Original Assignee
Hangzhou Dbappsecurity 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 Hangzhou Dbappsecurity Technology Co Ltd filed Critical Hangzhou Dbappsecurity Technology Co Ltd
Priority to CN202011163223.1A priority Critical patent/CN112347100B/zh
Publication of CN112347100A publication Critical patent/CN112347100A/zh
Application granted granted Critical
Publication of CN112347100B publication Critical patent/CN112347100B/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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • 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/2455Query execution
    • G06F16/24552Database cache management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (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

数据库索引优化方法、装置、计算机设备和存储介质
技术领域
本申请涉及信息检索技术领域,特别是涉及数据库索引优化方法、装置、计算机设备和计算机可读存储介质。
背景技术
索引在数据库中的作用是快速找出某个列中一个特定值的行,不使用索引的话,数据库表必须从第一条记录遍历到相关行,表越大,花费的时间越多,但是如果有索引,就能快速的到达某个位置去搜索数据文件。
为了提升数据检索效率,需要给表建立索引,但索引需要占用物理空间。当表中的数据进行增加、删除和修改的时候,索引也要动态地维护,会相应降低数据的维护速度。因此索引的建立需要不断地优化,否则降低数据访问效率。
针对上述问题,相关技术(专利号为CN201510767926.8)提出了一种数据库索引优化系统,该系统将数据库操作日志文件,数据库索引通过操作对象提取模块进行提取,然后通过操作对象分类模块进行分类,并将其提交到操作对象分析模块分析处理,通过索引分析模块将出现频率高、查询数据量大的语句进行测试,根据测试结果通过索引优化模块将动态生成索引,并删除使用频率低、测试性能低的索引,通过索引优化模块可以根据数据库要求、特性定交不同的规则库,也可以配置索引缓存,从而提高数据库整体查询性能。
然而,一方面,上述方案在进行数据库索引优化的过程中,所分析的对象为出现频率高、查询数据量大的语句,分析对象不够精细化,分析结果不够准确,从而无法高效地定位到索引需求;另一方面,需要将操作语句进行粗分类后进行分析,分类存储需要占用空间,空间占有率变大,并且分析复杂度也变高。
目前针对相关技术中数据库索引优化方案无法高效地定位到索引需求的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种数据库索引优化方法、装置、计算机设备和存储介质,以至少解决相关技术中数据库索引优化方案无法高效地定位到索引需求的问题。
第一方面,本申请实施例提供了一种数据库索引优化方法,包括:在从数据库中获取的至少一个流量分片中提取数据库操作信息,其中,所述数据库操作信息包括数据库操作语句、数据库操作语句的执行次数以及数据库操作语句的执行时长;对所述数据库操作语句进行数据处理,得到索引信息,其中,所述索引信息至少包括以下其中一种:索引对象、索引列、索引条件;在每个所述流量分片的所述数据库操作语句中检测至少一个候选因子,并统计携带有所述候选因子的所述数据库操作语句的执行次数,其中,所述候选因子包括携带有预设字符的索引信息和/或已执行的数据库操作语句;根据携带有所述候选因子的所述数据库操作语句的执行次数,在所述至少一个候选因子中筛选出目标因子;根据所述目标因子,生成指示优化所述数据库的索引策略。
在其中一些实施例中,所述预设字符包括全通配符、左通配符以及运算符,所述候选因子包括携带有所述全通配符的索引列、携带有所述左通配符的索引条件、携带有所述运算符的索引对象、携带有所述运算符的索引条件、已执行的数据库操作语句;在每个所述流量分片的数据库操作语句中检测至少一个候选因子,并统计携带有所述候选因子的数据库操作语句的执行次数包括:在每个所述流量分片的数据库操作语句中检测携带有所述全通配符的索引列,并统计对应于携带有所述全通配符的索引列的数据库操作语句的第一执行次数;在每个所述流量分片的数据库操作语句中检测携带有所述左通配符的索引条件,并统计对应于携带有所述左通配符的索引条件的数据库操作语句的第二执行次数;在每个所述流量分片的数据库操作语句中检测携带有所述运算符的索引对象,并统计对应于携带有所述运算符的索引对象的数据库操作语句的第三执行次数;在每个所述流量分片的数据库操作语句中检测携带有所述运算符的索引条件,并统计对应于携带有所述运算符的索引条件的数据库操作语句的第四执行次数;在每个所述流量分片的数据库操作语句中检测已执行的数据库操作语句,并统计所述已执行的数据库操作语句的第五执行次数。
在其中一些实施例中,根据所述目标因子,生成指示优化所述数据库的索引策略包括:在所述目标因子包括单个所述候选因子的情况下,生成对应于所述单个候选因子的指示优化所述数据库的索引策略。
在其中一些实施例中,根据所述目标因子,生成指示优化所述数据库的索引策略包括:在所述目标因子包括多个所述候选因子的情况下,生成对应于多个所述候选因子的指示优化所述数据库的索引策略。
在其中一些实施例中,根据携带有所述候选因子的所述数据库操作语句的执行次数,在所述至少一个候选因子中筛选出目标因子包括:将每个所述流量分片中统计得到的携带有所述候选因子的数据库操作语句的执行次数输入至预设运算模型,得到与所述数据库操作语句的执行时长强相关的候选因子,并将所述候选因子作为所述目标因子,其中,所述预设运算模型包括通过训练构建的混合高斯模型。
在其中一些实施例中,对所述数据库操作语句进行数据处理,得到索引信息包括:根据空格符对所述数据库操作语句进行分词处理,得到所述索引信息。
在其中一些实施例中,对所述数据库操作语句进行数据处理,得到索引信息包括:在所述数据库操作信息中检测用户数据;对所述用户数据进行脱敏处理,确定所述索引信息包括脱敏处理后的所述用户数据,其中,所述脱敏处理包括将所述用户数据设置成预设标记。
第二方面,本申请实施例提供了一种数据库索引优化装置,包括:
提取模块,用于在从数据库中获取的至少一个流量分片中提取数据库操作信息,其中,所述数据库操作信息包括数据库操作语句、数据库操作语句的执行次数以及数据库操作语句的执行时长;数据处理模块,用于对所述数据库操作语句进行数据处理,得到索引信息,其中,所述索引信息至少包括以下其中一种:索引对象、索引列、索引条件;统计模块,用于在每个所述流量分片的所述数据库操作语句中检测至少一个候选因子,并统计携带有所述候选因子的所述数据库操作语句的执行次数,其中,所述候选因子包括携带有预设字符的索引信息和/或已执行的数据库操作语句;筛选模块,用于根据携带有所述候选因子的所述数据库操作语句的执行次数,在所述至少一个候选因子中筛选出目标因子;生成模块,用于根据所述目标因子,生成指示优化所述数据库的索引策略。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的数据库索引优化方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述第一方面所述的数据库索引优化方法。
相比于相关技术,本申请实施例提供的数据库索引优化方法、数据库索引优化装置、计算机设备和计算机可读存储介质,通过在从数据库中获取的至少一个流量分片中提取数据库操作信息,其中,数据库操作信息包括数据库操作语句、数据库操作语句的执行次数以及数据库操作语句的执行时长;对数据库操作语句进行数据处理,得到索引信息,其中,索引信息至少包括以下其中一种:索引对象、索引列、索引条件;在每个流量分片的数据库操作语句中检测至少一个候选因子,并统计携带有候选因子的数据库操作语句的执行次数,其中,候选因子包括携带有预设字符的索引信息和/或已执行的数据库操作语句;根据携带有候选因子的数据库操作语句的执行次数,在至少一个候选因子中筛选出目标因子;根据目标因子,生成指示优化数据库的索引策略,解决了相关技术中数据库索引优化方案无法高效地定位到索引需求的问题,实现了高效地定位到索引需求的效果。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的计算机设备的硬件结构框图;
图2是根据本申请实施例的数据库索引优化方法的流程图;
图3是根据本申请实施例的数据库索引优化装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所做出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本实施例提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。以运行在计算机设备上为例,该计算机设备包括存储器、处理器以及存储在存储器上并在处理器上运行的计算机程序,处理器执行计算机程序时实现数据库索引优化方法。
图1是根据本申请实施例的计算机设备的硬件结构框图。如图1所示,计算机设备可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述计算机设备还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机设备的结构造成限定。例如,计算机设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的数据库索引优化方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机设备的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
本实施例提供了一种数据库索引优化方法,图2是根据本申请实施例的数据库索引优化方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,在从数据库中获取的至少一个流量分片中提取数据库操作信息,其中,数据库操作信息包括数据库操作语句、数据库操作语句的执行次数以及数据库操作语句的执行时长。
流量分片代表在预设时长T内从数据库截取的数据库流量,可以通过配置数据库IP地址和端口,通过镜像方式获取数据库流量。数据库操作语句代表对数据库进行操作的语句,包括但不限于数据查询语句,数据操纵语句,数据定义语句和数据控制语句;数据库操作语句所操作的数据库包括关系型数据库和非关系型数据库;数据库操作语句包括SQL语句。
数据库操作语句的执行次数代表在某个流量分片中(即预设时长T)的执行次数,数据库操作语句的执行时长代表在某个流量分片中(即预设时长T)的执行时长。
步骤S202,对数据库操作语句进行数据处理,得到索引信息,其中,索引信息至少包括以下其中一种:索引对象、索引列、索引条件。
数据处理包括根据空格符对数据库操作语句进行分词处理,得到索引信息。索引对象代表数据库中的业务表,索引列代表业务表中的字段,索引条件代表查询条件。
步骤S203,在每个流量分片的数据库操作语句中检测至少一个候选因子,并统计携带有候选因子的数据库操作语句的执行次数,其中,候选因子包括携带有预设字符的索引信息和/或已执行的数据库操作语句。
本实施例中的候选因子为对据库操作语句的执行时长起着影响作用的因子,例如,携带有预设字符的索引信息、已执行的数据库操作语句,预设字符包括但不限于通配符、运算符。
步骤S204,根据携带有候选因子的数据库操作语句的执行次数,在至少一个候选因子中筛选出目标因子。
相关技术仅仅是将出现频率高、查询数据量大的语句进行测试,根据测试结果通过索引优化模块将动态生成索引,所分析的对象为出现频率高、查询数据量大的语句,分析对象不够精细化,分析结果不够准确,从而无法高效地定位到索引需求。考虑到不同的候选因子所对应的数据库操作语句的执行效率是不同的,本实施例在数据库操作语句的执行次数的基础上,增加候选因子这一维度,在至少一个候选因子中筛选出目标因子,使得分析对象精细化,分析结果更加准确。
步骤S205,根据目标因子,生成指示优化数据库的索引策略。
指示优化数据库的索引策略包括影响数据库操作语句的执行效率的分析结果和索引优化建议,分析结果和索引优化建议可以以提示的形式输出,能够让数据管理员或者开发者快速定位到用户索引需求,从而优化索引以提高索引效率。
通过上述步骤S201至步骤S205,采用在从数据库中获取的至少一个流量分片中提取数据库操作信息,对数据库操作语句进行数据处理,得到索引信息,在每个流量分片的数据库操作语句中检测至少一个候选因子,并统计携带有候选因子的数据库操作语句的执行次数,根据携带有候选因子的数据库操作语句的执行次数,在至少一个候选因子中筛选出目标因子,根据目标因子,生成指示优化数据库的索引策略,解决了相关技术中数据库索引优化方案无法高效地定位到索引需求的问题,实现了高效地定位到索引需求的效果;同时,本实施例不需要将操作语句进行粗分类后进行分析,空间占有率小,并且分析复杂度也较低。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。
在其中一些实施例中,预设字符包括全通配符、左通配符以及运算符,候选因子包括携带有全通配符的索引列、携带有左通配符的索引条件、携带有运算符的索引对象、携带有运算符的索引条件、已执行的数据库操作语句;在每个流量分片的数据库操作语句中检测至少一个候选因子,并统计携带有候选因子的数据库操作语句的执行次数包括如下步骤:
在每个流量分片的数据库操作语句中检测携带有全通配符的索引列,并统计对应于携带有全通配符的索引列的数据库操作语句的第一执行次数。
在每个流量分片的数据库操作语句中检测携带有左通配符的索引条件,并统计对应于携带有左通配符的索引条件的数据库操作语句的第二执行次数。
在每个流量分片的数据库操作语句中检测携带有运算符的索引对象,并统计对应于携带有运算符的索引对象的数据库操作语句的第三执行次数。
在每个流量分片的数据库操作语句中检测携带有运算符的索引条件,并统计对应于携带有运算符的索引条件的数据库操作语句的第四执行次数。
在每个流量分片的数据库操作语句中检测已执行的数据库操作语句,并统计已执行的数据库操作语句的第五执行次数。
本实施例结合预设字符的类型和出现的位置来定义候选因子,而不是仅仅根据预设字符的类型来定义候选因子,使得分析对象更加精细化。在一些优选实施例中,通过检测在多个预设时长T中对据库操作语句的执行时长起着影响作用的候选因子,得到对应于不同候选因子的数据库操作语句的执行次数,以增加分析对象的数量,使得分析结果更加准确。
在其中一些实施例中,根据目标因子,生成指示优化数据库的索引策略包括如下步骤:在目标因子包括单个候选因子的情况下,生成对应于单个候选因子的指示优化数据库的索引策略,其中,单个候选因子包括在携带有全通配符的索引列、携带有左通配符的索引条件、携带有运算符的索引对象、携带有运算符的索引条件、已执行的数据库操作语句中的任意一个候选因子。
在本实施例中,若目标因子为单个候选因子,就生成对应于该单个候选因子的指示优化数据库的索引策略。
例如,若目标因子为携带有全通配符的索引列,则提示频繁采用全通配符影响索引效率,建议优化索引列。
或者,若目标因子为携带有左通配符的索引条件,则提示频繁采用左通配符影响索引效率,建议优化索引条件。
或者,若目标因子为携带有运算符的索引对象,则提示频繁采用运算符影响索引效率,建议优化索引对象。
或者,若目标因子为携带有运算符的索引条件,则提示索引条件进行了相关运算,建议优化索引条件。
或者,若目标因子为已执行的数据库操作语句,并计算该已执行的数据库操作语句的平均执行时长,并横向对比其他索引对象的平均执行时长,比较该已执行的数据库操作语句的平均执行时长和其他索引对象的平均执行时长,在该已执行的数据库操作语句的平均执行时长大于其他索引对象的平均执行时长的情况下,则推荐将索引条件作为索引。
在其中一些实施例中,根据目标因子,生成指示优化数据库的索引策略包括如下步骤:在目标因子包括多个候选因子的情况下,生成对应于多个候选因子的指示优化数据库的索引策略,其中,多个候选因子包括在携带有全通配符的索引列、携带有左通配符的索引条件、携带有运算符的索引对象、携带有运算符的索引条件、已执行的数据库操作语句中任意多个候选因子。
在本实施例中,若影响数据库操作语句的执行时长的因子为多个候选因子,就生成对应于该多个候选因子的指示优化数据库的索引策略。
上述实施例已经介绍单个候选因子所对应的指示优化数据库的索引策略,对于多个候选因子的指示优化数据库的索引策略,则合并生成并提示,在此不再赘述。
数据库操作语句的执行时长影响着执行效率,一般数据库操作语句的执行时长越长,执行效率越低,为了找到影响执行效率的主要因子,在其中一些实施例中,根据携带有候选因子的数据库操作语句的执行次数,在至少一个候选因子中筛选出目标因子包括如下步骤:将每个流量分片中统计得到的携带有候选因子的数据库操作语句的执行次数输入至预设运算模型,得到与数据库操作语句的执行时长强相关的候选因子,并将候选因子作为目标因子,其中,预设运算模型包括通过训练构建的混合高斯模型。
高斯混合模型指用高斯概率密度函数(正态分布曲线)量化事物,并将事物分解为若干的基于高斯概率密度函数(正态分布曲线)形成的模型。
在一些优选实施例中,通过检测在n个预设时长T中对据库操作语句的执行时长起着影响作用的候选因子,得到对应于不同候选因子的数据库操作语句的执行次数,即得到n个第一执行次数、第二执行次数、第三执行次数、第四执行次数以及第五执行次数,将这些执行次数作为样本输入至混合高斯模型,便可得到与数据库操作语句的执行时长强相关的候选因子。
在一些实施例中,预设运算模型还包括通过训练构建的神经网络模型。
其中,在训练混合高斯模型的过程中,可以检测另外m个预设时长T中对据库操作语句的执行时长起着影响作用的候选因子,即得到m个第一执行次数、第二执行次数、第三执行次数、第四执行次数以及第五执行次数,将这些执行次数作为训练样本输入至混合高斯模型进行训练,得到分类结果,根据分类结果调整混合高斯模型中的参数,最终得到训练好的混合高斯模型。
相关技术中,数据库操作语句未经处理,不利于保护用户隐私,为了解决该问题,在其中一些实施例中,对数据库操作语句进行数据处理,得到索引信息包括:在数据库操作信息中检测用户数据;对用户数据进行脱敏处理,确定索引信息包括脱敏处理后的用户数据,其中,脱敏处理包括将用户数据设置成预设标记。
脱敏处理可以将某一用户数据全部采用预设标记进行替换,也可以将某一用户数据的部分数据采用预设标记进行替换。预设标记包括标记符和识别符,其中,标记符用于表示该数据用户数据,识别符用于表示该用户数据的身份。示例:第一用户数据替换为“:1”,第二用户数据替换为“:2”,其中“:”为标记符,“1”和“2”为识别符。
通过上述步骤,对数据库操作语句进行去用户信息保存,起到保护用户隐私的效果。
在一些实施例中,标记符可以为其他符号,例如“@”,识别符可以为其他序号,例如“Ⅰ”。本实施例对于预设标记的形式并不做限定。
以SQL语句为例,以下将根据优选实施例介绍本申请的数据库索引优化方案的流程。
经过预设时长T,重复以下步骤100至步骤200,收集脱敏后的索引信息。
步骤100,获取数据库流量,其中,包括步骤101至步骤102。
步骤101,通过配置数据库IP地址和端口,通过镜像方式获取数据库流量。
步骤102,分析数据库流量,得到数据库操作信息,数据库操作信息包括但不限于SQL语句、SQL语句的执行时长以及SQL语句的影响行数。
步骤200,获取脱敏后的索引信息,其中,包括步骤201至步骤202。
步骤201,将步骤102中的SQL语句中包含的用户数据替换为标记符和识别符,记为SQL1。示例:第一用户数据替换为:1,第二用户数据替换为:2,其中“:”为标记符;“1”为识别符。
步骤202,将SQL1进行分词,SQL1通过空格进行分词,得到索引信息,索引信息包括但不限于索引对象、索引列、索引条件。
步骤300,分析索引信息,其中,包括经过n个预设时长T,重复步骤301至步骤305,直到能够得到n个n1、n2、n3、n4、n5以及t1。
步骤301,在每个流量分片的数据库操作语句中检测携带有全通配符*的索引列,并统计对应于携带有全通配符的索引列的数据库操作语句的第一执行次数n1。
步骤302,在每个流量分片的数据库操作语句中检测携带有左通配符*的索引条件,并统计对应于携带有左通配符的索引条件的数据库操作语句的第二执行次数n2。
步骤303,在每个流量分片的数据库操作语句中检测携带有运算符的索引对象,并统计对应于携带有运算符的索引对象的数据库操作语句的第三执行次数n3,其中,运算符包括但不限于!=、<、>、in。
步骤304,在每个流量分片的数据库操作语句中检测携带有运算符的索引条件,并统计对应于携带有运算符的索引条件的数据库操作语句的第四执行次数n4。
步骤305,在每个流量分片的数据库操作语句中检测已执行的数据库操作语句,并统计已执行的数据库操作语句的第五执行次数n5,并计算在预设时长T内该已执行的数据库操作语句的平均执行时长t1,t1为数据库操作语句的执行时长之和除以出现的次数。
步骤400,采用混合高斯模型,输入n个样本(n1、n2、n3、n4、n5以及t1),得到与执行时长强相关的目标因子。
步骤500,索引优化,该步骤包括:
若数据库操作语句的执行时长和携带有全通配符的索引列强相关,则提示频繁采用全通配符影响索引效率,建议优化索引列。
若数据库操作语句的执行时长和携带有左通配符的索引条件强相关,则提示频繁采用左通配符影响索引效率,建议优化索引条件。
若数据库操作语句的执行时长和携带有运算符的索引对象强相关,则提示频繁采用运算符影响索引效率,建议优化索引对象。
若数据库操作语句的执行时长和携带有运算符的索引条件强相关,则提示索引条件进行了相关运算,建议优化索引条件。
若数据库操作语句的执行时长和已执行的数据库操作语句强相关,并计算该已执行的数据库操作语句的平均执行时长,并横向对比其他索引对象的平均执行时长,比较该已执行的数据库操作语句的平均执行时长和其他索引对象的平均执行时长,在该已执行的数据库操作语句的平均执行时长大于其他索引对象的平均执行时长的情况下,则推荐将索引条件作为索引。
以上,若跟其中多个候选因子相关,则合并提示指示优化数据库的索引策略。
本实施例还提供了一种数据库索引优化装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3是根据本申请实施例的数据库索引优化装置的结构框图,如图3所示,该装置包括:提取模块31、数据处理模块32、统计模块33、筛选模块34以及生成模块35。
提取模块31,用于在从数据库中获取的至少一个流量分片中提取数据库操作信息,其中,所述数据库操作信息包括数据库操作语句、数据库操作语句的执行次数以及数据库操作语句的执行时长;
数据处理模块32,耦合至提取模块31,用于对所述数据库操作语句进行数据处理,得到索引信息,其中,所述索引信息至少包括以下其中一种:索引对象、索引列、索引条件;
统计模块33,耦合至数据处理模块32,用于在每个所述流量分片的所述数据库操作语句中检测至少一个候选因子,并统计携带有所述候选因子的所述数据库操作语句的执行次数,其中,所述候选因子包括携带有预设字符的索引信息和/或已执行的数据库操作语句;
筛选模块34,耦合至统计模块33,用于根据携带有所述候选因子的所述数据库操作语句的执行次数,在所述至少一个候选因子中筛选出目标因子;
生成模块35,耦合至筛选模块34,用于根据所述目标因子,生成指示优化所述数据库的索引策略。
在其中一些实施例中,统计模块33用于在每个流量分片的数据库操作语句中检测携带有全通配符的索引列,并统计对应于携带有全通配符的索引列的数据库操作语句的第一执行次数;在每个流量分片的数据库操作语句中检测携带有左通配符的索引条件,并统计对应于携带有左通配符的索引条件的数据库操作语句的第二执行次数;在每个流量分片的数据库操作语句中检测携带有运算符的索引对象,并统计对应于携带有运算符的索引对象的数据库操作语句的第三执行次数;在每个流量分片的数据库操作语句中检测携带有运算符的索引条件,并统计对应于携带有运算符的索引条件的数据库操作语句的第四执行次数;在每个流量分片的数据库操作语句中检测已执行的数据库操作语句,并统计已执行的数据库操作语句的第五执行次数。
在其中一些实施例中,生成模块35用于在目标因子包括单个候选因子的情况下,生成对应于单个候选因子的指示优化数据库的索引策略,其中,单个候选因子包括在携带有全通配符的索引列、携带有左通配符的索引条件、携带有运算符的索引对象、携带有运算符的索引条件、已执行的数据库操作语句中的任意一个候选因子。
在其中一些实施例中,生成模块35还用于在目标因子包括多个候选因子的情况下,生成对应于多个候选因子的指示优化数据库的索引策略,其中,多个候选因子包括在携带有全通配符的索引列、携带有左通配符的索引条件、携带有运算符的索引对象、携带有运算符的索引条件、已执行的数据库操作语句中任意多个候选因子。
在其中一些实施例中,筛选模块34用于将每个流量分片中统计得到的携带有候选因子的数据库操作语句的执行次数输入至预设运算模型,得到与数据库操作语句的执行时长强相关的候选因子,并将候选因子作为目标因子,其中,预设运算模型包括通过训练构建的混合高斯模型。
在其中一些实施例中,数据处理模块32用于根据空格符对数据库操作语句进行分词处理,得到索引信息。
在其中一些实施例中,数据处理模块32还用于在数据库操作信息中检测用户数据;对用户数据进行脱敏处理,确定脱敏处理后的索引信息,其中,脱敏处理包括将用户数据设置成预设标记。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
另外,结合上述实施例中的数据库索引优化方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种数据库索引优化方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种数据库索引优化方法,其特征在于,包括:
在从数据库中获取的至少一个流量分片中提取数据库操作信息,其中,所述数据库操作信息包括数据库操作语句、数据库操作语句的执行次数以及数据库操作语句的执行时长;
对所述数据库操作语句进行数据处理,得到索引信息,其中,所述索引信息至少包括以下其中一种:索引对象、索引列、索引条件;
在每个所述流量分片的所述数据库操作语句中检测至少一个候选因子,并统计携带有所述候选因子的所述数据库操作语句的执行次数,其中,所述候选因子包括携带有预设字符的索引信息和/或已执行的数据库操作语句;
根据携带有所述候选因子的所述数据库操作语句的执行次数,在所述至少一个候选因子中筛选出目标因子;
根据所述目标因子,生成指示优化所述数据库的索引策略。
2.根据权利要求1所述的数据库索引优化方法,其特征在于,所述预设字符包括全通配符、左通配符以及运算符,所述候选因子包括携带有所述全通配符的索引列、携带有所述左通配符的索引条件、携带有所述运算符的索引对象、携带有所述运算符的索引条件、已执行的数据库操作语句;在每个所述流量分片的数据库操作语句中检测至少一个候选因子,并统计携带有所述候选因子的数据库操作语句的执行次数包括:
在每个所述流量分片的数据库操作语句中检测携带有所述全通配符的索引列,并统计对应于携带有所述全通配符的索引列的数据库操作语句的第一执行次数;
在每个所述流量分片的数据库操作语句中检测携带有所述左通配符的索引条件,并统计对应于携带有所述左通配符的索引条件的数据库操作语句的第二执行次数;
在每个所述流量分片的数据库操作语句中检测携带有所述运算符的索引对象,并统计对应于携带有所述运算符的索引对象的数据库操作语句的第三执行次数;
在每个所述流量分片的数据库操作语句中检测携带有所述运算符的索引条件,并统计对应于携带有所述运算符的索引条件的数据库操作语句的第四执行次数;
在每个所述流量分片的数据库操作语句中检测已执行的数据库操作语句,并统计所述已执行的数据库操作语句的第五执行次数。
3.根据权利要求2所述的数据库索引优化方法,其特征在于,根据所述目标因子,生成指示优化所述数据库的索引策略包括:
在所述目标因子包括单个所述候选因子的情况下,生成对应于所述单个候选因子的指示优化所述数据库的索引策略。
4.根据权利要求2所述的数据库索引优化方法,其特征在于,根据所述目标因子,生成指示优化所述数据库的索引策略包括:
在所述目标因子包括多个所述候选因子的情况下,生成对应于多个所述候选因子的指示优化所述数据库的索引策略。
5.根据权利要求1所述的数据库索引优化方法,其特征在于,根据携带有所述候选因子的所述数据库操作语句的执行次数,在所述至少一个候选因子中筛选出目标因子包括:
将每个所述流量分片中统计得到的携带有所述候选因子的数据库操作语句的执行次数输入至预设运算模型,得到与所述数据库操作语句的执行时长强相关的候选因子,并将所述候选因子作为所述目标因子,其中,所述预设运算模型包括通过训练构建的混合高斯模型。
6.根据权利要求1所述的数据库索引优化方法,其特征在于,对所述数据库操作语句进行数据处理,得到索引信息包括:
根据空格符对所述数据库操作语句进行分词处理,得到所述索引信息。
7.根据权利要求1所述的数据库索引优化方法,其特征在于,对所述数据库操作语句进行数据处理,得到索引信息包括:
在所述数据库操作信息中检测用户数据;
对所述用户数据进行脱敏处理,确定所述索引信息包括脱敏处理后的所述用户数据,其中,所述脱敏处理包括将所述用户数据设置成预设标记。
8.一种数据库索引优化装置,其特征在于,包括:
提取模块,用于在从数据库中获取的至少一个流量分片中提取数据库操作信息,其中,所述数据库操作信息包括数据库操作语句、数据库操作语句的执行次数以及数据库操作语句的执行时长;
数据处理模块,用于对所述数据库操作语句进行数据处理,得到索引信息,其中,所述索引信息至少包括以下其中一种:索引对象、索引列、索引条件;
统计模块,用于在每个所述流量分片的所述数据库操作语句中检测至少一个候选因子,并统计携带有所述候选因子的所述数据库操作语句的执行次数,其中,所述候选因子包括携带有预设字符的索引信息和/或已执行的数据库操作语句;
筛选模块,用于根据携带有所述候选因子的所述数据库操作语句的执行次数,在所述至少一个候选因子中筛选出目标因子;
生成模块,用于根据所述目标因子,生成指示优化所述数据库的索引策略。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器上并在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的数据库索引优化方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至7中任一项所述的数据库索引优化方法。
CN202011163223.1A 2020-10-27 2020-10-27 数据库索引优化方法、装置、计算机设备和存储介质 Active CN112347100B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011163223.1A CN112347100B (zh) 2020-10-27 2020-10-27 数据库索引优化方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011163223.1A CN112347100B (zh) 2020-10-27 2020-10-27 数据库索引优化方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN112347100A true CN112347100A (zh) 2021-02-09
CN112347100B CN112347100B (zh) 2024-03-26

Family

ID=74358717

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011163223.1A Active CN112347100B (zh) 2020-10-27 2020-10-27 数据库索引优化方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN112347100B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113360497A (zh) * 2021-05-26 2021-09-07 华中科技大学 一种面向多负载的云数据库二级索引自动推荐方法和系统
CN115827646A (zh) * 2023-02-22 2023-03-21 北京仁科互动网络技术有限公司 索引配置方法、装置和电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105279276A (zh) * 2015-11-11 2016-01-27 浪潮(北京)电子信息产业有限公司 一种数据库索引优化系统
US20160110393A1 (en) * 2014-10-16 2016-04-21 International Business Machines Corporation Database indexes
CN106682101A (zh) * 2016-12-05 2017-05-17 福建天晴数码有限公司 一种数据库脚本运行异常检测的方法及系统
CN109597829A (zh) * 2018-11-20 2019-04-09 南京邮电大学 一种实现可搜索加密关系型数据库缓存的中间件方法
CN111400338A (zh) * 2020-03-04 2020-07-10 平安医疗健康管理股份有限公司 Sql优化方法、装置、存储介质及计算机设备
CN111723091A (zh) * 2020-05-25 2020-09-29 中国建设银行股份有限公司 基于Oracle数据库的索引处理方法、系统、设备和存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160110393A1 (en) * 2014-10-16 2016-04-21 International Business Machines Corporation Database indexes
CN105574031A (zh) * 2014-10-16 2016-05-11 国际商业机器公司 用于数据库索引的方法和系统
CN105279276A (zh) * 2015-11-11 2016-01-27 浪潮(北京)电子信息产业有限公司 一种数据库索引优化系统
CN106682101A (zh) * 2016-12-05 2017-05-17 福建天晴数码有限公司 一种数据库脚本运行异常检测的方法及系统
CN109597829A (zh) * 2018-11-20 2019-04-09 南京邮电大学 一种实现可搜索加密关系型数据库缓存的中间件方法
CN111400338A (zh) * 2020-03-04 2020-07-10 平安医疗健康管理股份有限公司 Sql优化方法、装置、存储介质及计算机设备
CN111723091A (zh) * 2020-05-25 2020-09-29 中国建设银行股份有限公司 基于Oracle数据库的索引处理方法、系统、设备和存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113360497A (zh) * 2021-05-26 2021-09-07 华中科技大学 一种面向多负载的云数据库二级索引自动推荐方法和系统
CN113360497B (zh) * 2021-05-26 2022-04-05 华中科技大学 一种面向多负载的云数据库二级索引自动推荐方法和系统
CN115827646A (zh) * 2023-02-22 2023-03-21 北京仁科互动网络技术有限公司 索引配置方法、装置和电子设备

Also Published As

Publication number Publication date
CN112347100B (zh) 2024-03-26

Similar Documents

Publication Publication Date Title
CN108683530B (zh) 多维度数据的数据分析方法、装置及存储介质
CN111031017B (zh) 一种异常业务账号识别方法、装置、服务器及存储介质
CN110415107B (zh) 数据处理方法、装置、存储介质及电子设备
JP2013504118A (ja) クエリのセマンティックパターンに基づく情報検索
CN106777232A (zh) 问答抽取方法、装置及终端
CN112070120A (zh) 威胁情报的处理方法、装置、电子装置和存储介质
CN106843941B (zh) 信息处理方法、装置和计算机设备
WO2016177069A1 (zh) 一种管理方法、装置、垃圾短信监控系统及计算机存储介质
CN112347100A (zh) 数据库索引优化方法、装置、计算机设备和存储介质
CN108536739B (zh) 元数据敏感信息字段识别方法、装置、设备及存储介质
CN102867038A (zh) 文件类型的确定方法和装置
CN106453320A (zh) 恶意样本的识别方法及装置
CN112181767A (zh) 软件系统异常的确定方法、装置和存储介质
CN108234426B (zh) Apt攻击告警方法和apt攻击告警装置
CN111259952A (zh) 异常用户识别方法、装置、计算机设备及存储介质
CN110516752A (zh) 聚类簇质量评估方法、装置、设备及存储介质
CN108664492B (zh) 一种向用户推送内容的方法、装置、电子设备和存储介质
CN112364014A (zh) 数据查询方法、装置、服务器及存储介质
CN111586695A (zh) 短信识别方法及相关设备
KR102425525B1 (ko) 베이지안 확률 및 폐쇄 패턴 마이닝 방식을 이용한 로그 이상 탐지 시스템 및 방법과, 이를 위한 컴퓨터 프로그램
CN112199388A (zh) 陌电识别方法、装置、电子设备及存储介质
CN117312825A (zh) 一种目标行为检测方法、装置、电子设备及存储介质
CN110380952B (zh) 邮件收发方法及装置
CN112765118B (zh) 一种日志查询方法、装置、设备及存储介质
CN107798004B (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