CN114443625A - 数据库的处理方法、装置 - Google Patents
数据库的处理方法、装置 Download PDFInfo
- Publication number
- CN114443625A CN114443625A CN202011232453.9A CN202011232453A CN114443625A CN 114443625 A CN114443625 A CN 114443625A CN 202011232453 A CN202011232453 A CN 202011232453A CN 114443625 A CN114443625 A CN 114443625A
- Authority
- CN
- China
- Prior art keywords
- index
- database
- processing
- query
- field
- 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
Images
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/217—Database tuning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
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)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据库的处理方法、装置、电子设备及计算机可读存储介质;涉及数据库的测试和优化;方法包括:从日志中提取出针对所述数据库的多个操作记录;对所述多个操作记录进行去重处理,以去除包括相同查询类型字段、且包括相同查询条件字段的数据库语句的操作记录;对进行所述去重处理后的操作记录进行筛选处理;根据所述筛选处理的结果生成所述数据库的优化方式,并基于所述优化方式更新所述数据库。通过本申请,能够提高数据库查询性能。
Description
技术领域
本申请涉及数据库技术,尤其涉及一种数据库的处理方法、装置、电子设备及计算机可读存储介质。
背景技术
数据库(Database),简而言之可视为电子化的文件柜,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
数据库索引是数据库中一种排序的数据结构,以协助快速查询、更新数据库表中数据。数据库索引就是为了提高表的搜索效率而对某些字段中的值建立的目录。配置的数据库索引不同也会导致数据库性能完全不同。而相关技术中,通常是在经常需要排序的列上创建索引,由于数据库中存储的海量数据,任意的数据变动均会对索引维护造成巨大的开销,导致代码执行的效率也会急剧降低。因此,在相关技术中,缺乏对数据库索引进行优化的有效方案。
发明内容
本申请实施例提供一种数据库的处理方法、装置、电子设备及计算机可读存储介质,能够提升数据库的性能。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种数据库的处理方法,包括:
从日志中提取出针对所述数据库的多个操作记录;
对所述多个操作记录进行去重处理,以去除包括相同查询类型字段、且包括相同查询条件字段的数据库语句的操作记录;
对进行所述去重处理后的操作记录进行筛选处理;
根据所述筛选处理的结果生成所述数据库的优化方式,并基于所述优化方式更新所述数据库。
本申请实施例提供一种数据库的处理装置,包括:。
提取模块,用于从日志中提取出针对所述数据库的多个操作记录;
去重模块,用于对所述多个操作记录进行去重处理,以去除包括相同查询类型字段、且包括相同查询条件字段的数据库语句的操作记录;
筛选模块,用于对进行所述去重处理后的操作记录进行筛选处理;
第一优化模块,用于根据所述筛选处理的结果生成所述数据库的优化方式,并基于所述优化方式更新所述数据库。
在上述方案中,所述去重模块,还用于以下至少之一:
对所述去重处理后的操作记录进行索引的存在性检测处理;
对所述去重处理后的操作记录进行索引的弃用检测处理。
在上述方案中,所述去重模块,还用于在所述去重处理后的操作记录中,确定查询类型为全表扫描的操作记录,并针对所述查询类型为全表扫描的操作记录进行索引字段的检测;
当检测到所述操作记录的索引字段为空时,将所述操作记录的数据库语句中所使用的查询字段作为单列索引,添加到所述字段为空的索引字段中;
当检测到所述操作记录的索引字段为非空时,调用索引失效原因数据库文件,将所述操作记录的数据库语句中所使用的查询字段,与所述索引失效原因数据库文件中的查询失效字段进行比对,以得到索引失效的原因。
在上述方案中,所述去重模块,还用于检测所述去重处理后的操作记录中的数据库语句,得到所述数据库语句中使用过的索引;
将所述使用过的索引与所述数据库中的所有索引进行对比,确定所述所有索引中除所述使用过的索引之外的索引为弃用索引。
在上述方案中,所述第一优化模块,还用于当对所述去重处理后的操作记录进行索引的存在性检测处理时,生成所述数据库的以下优化方式:基于所述索引失效的原因所指示的正确的数据库语句,对所述操作记录中的数据库语句进行修正;
当对所述去重处理后的操作记录进行索引的弃用检测处理时,生成所述数据库的以下优化方式:删除所述数据库中的所述弃用索引。
在上述方案中,本申请实施例提供的一种数据库的处理装置,还包括:
第二优化模块,用于对所述数据库进行索引的冗余检测处理,得到所述数据库中的冗余索引;
其中,所述冗余索引为至少满足以下条件之一的索引:
所述索引属于联合索引中的索引字段、且被设置为单列索引;
所述索引被设置为主键、且被设置为单列索引;
所述索引被设置为索引名不同的至少两个单列索引;
当所述数据库中的索引属于联合索引中的索引字段、且被设置为单列索引,或所述数据库中的索引被设置为主键、且被设置为单列索引时,确定所述数据库的以下优化方式:删除所述单列索引;
当所述数据库中的索引被设置为索引名不同的至少两个单列索引时,确定数据库的以下优化方式:保留查询效率最高的单列索引,并删除掉除所述查询效率最高的单列索引之外的单列索引。
在上述方案中,本申请实施例提供的一种数据库的处理装置,还包括:
排序模块,用于获取所述数据库中每个数据库表的数据量;
当所述数据量大于数据量阈值时,获取所述数据库表的至少两个索引字段的查询频率,按照所述查询频率由高到低的顺序对所述至少两个索引字段进行排序。
在上述方案中,本申请实施例提供的一种数据库的处理装置,还包括:
设置模块,用于获取所述数据库中每个数据库表的索引字段的数据内容不同的行数;
确定所述数据内容不同的行数与所述索引字段的总行数的差异比值,将所述差异比值高于差异阈值的索引字段设置为索引。
在上述方案中,本申请实施例提供的一种数据库的处理装置,还包括:
扫描模块,用于根据索引对数据库的扫描结果进行排序;
其中,对所述数据库的扫描结果进行排序需要满足以下至少之一的条件:
针对所述数据库进行单表查询时,索引的列顺序与数据库语句中的排序字段的列顺序一致、且所有列的排序方向一致;
针对所述数据库进行多个关联表查询时,数据库语句中的排序字段全部为第一张表。
本申请实施例提供一种数据库的处理装置,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的数据库的处理方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于被处理器执行时,实现本申请实施例提供的数据库的处理方法。
本申请实施例具有以下有益效果:
从日志中提取多个操作记录,对多个操作记录进行去重、筛选处理后,生成数据库的优化方式,从而基于优化方式更新数据库,以提升数据库查询性能;对多个操作记录进行去重处理,进而对去重处理后的操作记录进行筛选处理,生成的数据库的优化方式,能够根据操作记录智能地对数据库进行更新,提升了维护数据库的效率,提高了数据库的并发处理能力。
附图说明
图1是相关技术中删除索引进行数据库查询的代码示意图;
图2是本申请实施例提供的数据库的处理***100的一个架构示意图;
图3是本申请实施例提供的电子设备的一个结构示意图;
图4A是本申请实施例提供的数据库的处理方法的一个流程示意图;
图4B是本申请实施例提供的数据库的处理方法的一个流程示意图;
图4C是本申请实施例提供的数据库的处理方法的一个流程示意图;
图5是本申请实施例提供的社交网络客户端实施数据库的处理方法的原理示意图;
图6是本申请实施例提供的索引的存在性检测的检测结果的示意图;
图7是本申请实施例提供的删除冗余索引的代码示意图;
图8是本申请实施例提供的索引的弃用检测处理的流程示意图;
图9是本申请实施例提供的索引排序优化的示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)数据库,本文中可以是结构化数据库,其中存储的是可以用二维表(简称表)结构来记录的数据,表中包括一个或多个(至少两个)字段,表中的每个行数据(即每一行数据)对应每个字段有对应的取值,一个行数据也称为一个操作记录或一条数据。
2)覆盖索引,可以直接获取列的数据,无需读取数据行。
3)联合索引,两个或更多个列上的索引被称作联合索引。
4)主关键字(主键,primary key)是表中的一个或多个字段,它的值用于唯一的标识数据库表中的数据。
5)索引,是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。
6)数据库语句,即结构化查询语句(SQL,Structured Query Language),是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库***;是对数据库进行操作的一种语言。
7)Percona Toolkit,即PT工具,是一组高级的命令行工具,用来管理MySQL和***任务,主要包括:验证主节点和复制数据的一致性,有效的对记录行进行归档找出重复的索引。
相关技术中,参见图1,图1是相关技术中删除索引进行数据库查询的代码示意图;其中,DROP KEY“idx_modify_time”表示删除索引“idx_modify_time”,删掉索引后,再次测试数据库查询性能,发现不使用索引进行数据库查询时,只能对全表进行查询,使得代码性能千差万别;而且,由于数据库中存储的海量数据,任意的数据变动均会对索引维护造成巨大的开销,代码执行的效率也会急剧降低。
针对上述问题,本申请实施例提供一种数据库的处理方法、装置、电子设备和计算机可读存储介质,能够提升数据库查询性能,下面说明本申请实施例提供的数据库的处理方法的示例性应用,本申请实施例提供的数据库的处理方法可以由各种电子设备实施,例如可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备等各种类型的用户终端,也可以实施为服务器。下面,将说明电子设备实施为服务器时示例性应用。
参见图2,图2是本申请实施例提供的数据库的处理***100的一个架构示意图,为实现支撑一个数据库的处理方法的应用,终端(示例性示出了终端400-1和终端400-2)通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。
在一些实施例中,服务器200(即,远程数据库服务器)从日志中提取出针对数据库的多个操作记录,对多个操作记录依此进行去重处理和筛选处理,根据筛选处理的结果生成数据库的优化方式,基于优化方式更新数据库,从而服务器200能够根据操作记录智能地对数据库进行更新以供终端用户使用;终端用户触发终端400-1运行的客户端中的操作,通过网络300向服务器200发起查询请求(即查询数据库的数据),服务器基于更新后的数据库返回查询结果给终端400-1,以供终端用户在终端400-1运行的客户端中的操作需要查询数据库时,总是能够使用更新后的数据库进行查询,以提高返回用户操作结果的处理效率,提升用户体验。
在另一些实施例中,数据库也可以为本地数据库,例如,终端400-1从本地日志中提取出针对本地数据库的多个操作记录,对多个操作记录依此进行去重处理和筛选处理,根据筛选处理的结果生成本地数据库的优化方式,基于优化方式更新本地数据库,能够根据操作记录智能地对本地数据库进行更新,以供终端用户在终端400-1运行的客户端中发起查询请求时,总是能够使用更新后的本地数据库进行查询,以提高返回用户查询结果的处理效率,提升用户体验。
在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
接下来,说明本申请实施例提供的用于实施数据库的处理方法的电子设备的结构,如前所述,本申请实施例提供的电子设备可以是图2中的服务器200。参见图3,图3是本申请实施例提供的电子设备的一个结构示意图,图3所示的电子设备包括:至少一个处理器210、存储器250和至少一个网络接口220。电子设备中的各个组件通过总线***240耦合在一起。可理解,总线***240用于实现这些组件之间的连接通信。总线***240除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线***240。
处理器210可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器250可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器250可选地包括在物理位置上远离处理器210的一个或多个存储设备。
存储器250包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Me mory),易失性存储器可以是随机存取存储器(RAM,Random Access Memor y)。本申请实施例描述的存储器250旨在包括任意适合类型的存储器。
在一些实施例中,存储器250能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作***251,包括用于处理各种基本***服务和执行硬件相关任务的***程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块252,用于经由一个或多个(有线或无线)网络接口220到达其他计算设备,示例性的网络接口220包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
在一些实施例中,本申请实施例提供的数据库的处理装置可以采用软件方式实现,图3示出了存储在存储器250中的数据库的处理装置255,其可以是程序和插件等形式的软件,包括以下软件模块:提取模块2551、去重模块2552、筛选模块2553、第一优化模块2554、第二优化模块2555、排序模块2556、设置模块2557以及扫描模块2558,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
可以理解的是,本申请实施例提供的数据库的处理方法可以由电子设备执行,电子设备包括但不限于服务器或终端。下面将结合本申请实施例提供的终端的示例性应用和实施,说明本申请实施例提供的数据库的处理方法。参见图4A,图4A是本申请实施例提供的数据库的处理方法的一个流程示意图,将结合图4A示出的步骤进行说明。
在步骤101中,从日志中提取出针对数据库的多个操作记录。
在一些实施例中,通过在终端执行查看数据库日志的指令,可以获取日志,在日志中提取出针对数据库执行的操作记录(即数据库语句信息);其中,操作记录包括的信息有:序列号、查询类型、表名、数据库语句、索引等。
在步骤102中,对多个操作记录进行去重处理,以去除包括相同查询类型字段、且包括相同查询条件字段的数据库语句的操作记录。
在一些实施例中,遍历每个操作记录,统计操作记录中的查询类型字段相同、且查询条件字段相同的数据库语句数量,当数据库语句数量超过一条时,删除包括重复的数据库语句的操作记录。
在本申请实施例中,对多个操作记录进行去重处理,提升了后续进行筛选处理和生成数据库优化方式的处理效率。
在步骤103中,对进行去重处理后的操作记录进行筛选处理。
在一些实施例中,对进行去重处理后的操作记录进行筛选处理,可以通过以下至少之一的方式实现:对去重处理后的操作记录进行索引的存在性检测处理;对去重处理后的操作记录进行索引的弃用检测处理。
在一些示例中,对去重处理后的操作记录进行索引的存在性检测处理时,参见图4B,图4B是本申请实施例提供的数据库的处理方法的一个流程示意图,图4A示出的步骤103可以通过步骤1031至步骤1033实现,下面将结合各步骤进行说明。
在步骤1031中,在去重处理后的操作记录中,确定查询类型为全表扫描的操作记录,并针对查询类型为全表扫描的操作记录进行索引字段的检测。
需要说明的是,Explain是SQL的一种命令,是用来检查SQL语句的。对去重处理后的操作记录进行索引的存在性检测可以通过调用数据库中的解释指令Explain来实现,Explain能够模拟数据库中的查询优化器是如何执行SQL语句的,即Explain显示了数据库是如何使用索引的。
在步骤1032中,当检测到操作记录的索引字段为空时,将操作记录的数据库语句中所使用的查询字段作为单列索引,添加到字段为空的索引字段中。
举例来说,SQL语句为select*from table1 where field1 like‘%value1%’,可见,field1即为查询字段,将field1添加为单列索引。
在步骤1033中,当检测到操作记录的索引字段为非空时,调用索引失效原因数据库文件,将操作记录的数据库语句中所使用的查询字段,与索引失效原因数据库文件中的查询失效字段进行比对,以得到索引失效的原因。
举例来说,索引失效的原因有:A.隐式转换导致索引失效,如int类型和string类型混淆;B.对索引列进行运算导致索引失效,例如where后面有运算符号;C.使用内部函数导致索引失效;D.使用<>、not in、not exist、!=;E.like‘%...’百分号在前;F.单独引用复合索引里非第一位置的索引列,应总是使用索引的第一个列,如果索引是建立在多个列上,只有在它的第一个列被where子句引用时,优化器才会选择使用该索引。例如,满足最左前缀的查询条件的顺序为(user_name、city、age),当索引列为(city)时,则会导致索引失效;G.当变量采用的是timestamp变量,而表的字段(索引列)采用的是date变量时或相反情况;H.将空的变量值直接与比较运算符(符号)比较;I.在SQL代码中使用双引号。
在本申请实施例中,当检测到操作记录的索引字段为空时,能够将操作记录的数据库语句中所使用的查询字段添加为单列索引;当检测到操作记录的索引字段为非空时,能够检测出索引失败的原因并提供修复方式;提供索引存在与否的高效检测及修复的手段。
在一些示例中,对去重处理后的操作记录进行索引的弃用检测处理时,参见图4C,图4C是本申请实施例提供的数据库的处理方法的一个流程示意图,图4A示出的步骤103可以通过步骤1034和步骤1035实现,下面将结合各步骤进行说明。
在步骤1034中,检测去重处理后的操作记录中的数据库语句,得到数据库语句中使用过的索引。
在步骤1035中,将使用过的索引与数据库中的所有索引进行对比,确定所有索引中除使用过的索引之外的索引为弃用索引。
在一些示例中,实现对去重处理后的操作记录进行索引的弃用检测处理可以通过PT工具中的重复索引检测pt-duplicate-key-checker工具来实现。
在本申请实施例中,对已存在索引进行弃用检查,判断是否存在弃用索引,避免弃用索引造成的物理内存资源开销的浪费,提升代码的执行效率。
步骤104中,根据筛选处理的结果生成数据库的优化方式,并基于优化方式更新数据库。
在一些实施例中,根据筛选处理的结果生成数据库的优化方式,可以通过以下方式实现:当对去重处理后的操作记录进行索引的存在性检测处理时,生成数据库的以下优化方式:基于索引失效的原因所指示的正确的数据库语句,对操作记录中的数据库语句进行修正;当对去重处理后的操作记录进行索引的弃用检测处理时,生成数据库的以下优化方式:删除数据库中的弃用索引。
在一些示例中,当对去重处理后的操作记录进行索引的存在性检测处理时,生成数据库的以下优化方式:基于索引失效的原因所指示的正确的数据库语句,对操作记录中的数据库语句进行修正,可以通过以下方式实现:当索引原因为A.隐式转换导致索引失效,如int类型和string类型混淆,举例来说,错误SQL为:select*from test where tu_mdn=13333333333;其中,tu_mdn定义为varchar2(20),查询时把该字段作为number类型以where条件传给Oracle,这样会导致索引失效。正确SQL为:select*from test where tu_mdn='13333333333';B.对索引列进行运算导致索引失效,例如where后面有运算符号,举例来说,错误SQL为:select*from test where id-1=9;正确SQL为:select*from test where id=10;C.使用内部函数导致索引失效,例如,错误SQL为:select id from t wheresubstring(name,1,3)=‘abc’,正确SQL为select id from t where name like‘abc%’;D.使用<>、not in、not exist、!=,例如,需要使用!=不等于时,使用覆盖索引;E.like‘%...’百分号在前,例如,可以利用字符串反转函数reverse+function index的形式,变化成like'...%';F.单独引用复合索引里非第一位置的索引列,应总是使用索引的第一个列,如果索引是建立在多个列上,只有在它的第一个列被where子句引用时,优化器才会选择使用该索引。例如,满足最左前缀的查询条件的顺序为(user_name、city、age),当索引列为(city)时,则会导致索引失效,将其修正为满足最左前缀的查询条件的索引。
在本申请实施例中,能够对已存在索引进行检查,并对问题索引进行修正(修复造成索引失效的错误语句),提升索引优化效率,减少索引优化时间。
在一些实施例中,除了根据操作记录生成对数据库的优化方式外,还可以直接通过对数据库进行分析,生成对数据库的优化方式。也就是说,对数据库进行分析以生成对数据库的优化方式,可以通过以下方式实现:对数据库进行索引的冗余检测处理,得到数据库中的冗余索引;其中,冗余索引为至少满足以下条件之一的索引:索引属于联合索引中的索引字段、且被设置为单列索引;索引被设置为主键、且被设置为单列索引;索引被设置为索引名不同的至少两个单列索引;当数据库中的索引属于联合索引中的索引字段、且被设置为单列索引,或数据库中的索引被设置为主键、且被设置为单列索引时,确定数据库的以下优化方式:删除单列索引;当数据库中的索引被设置为索引名不同的至少两个单列索引时,确定数据库的以下优化方式:保留查询效率最高的单列索引,并删除掉除查询效率最高的单列索引之外的单列索引。
需要说明的是,数据库中用于查询条件的索引需要满足最左前缀原则,一个查询可以只使用索引中的一部分,但只能是最左侧部分。由于主键的值已经用于唯一的标识数据库表中的数据,没有必要再对其设置索引。
在一些示例中,对索引属于联合索引中的索引字段、且被设置为单列索引的情况举例说明,例如,索引是key index(a,b,c),可以支持a;(a,b);(a,b,c)3种组合作为索引进行查找,但不支持(b,c)作为索引进行查找;也就是说,联合索引(a,b,c)已经支持了以单列索引a进行查找,因此,索引a已经属于联合索引(a,b,c)中的索引字段,再被设置为单列索引,即为冗余索引。在本申请实施例中,能够对已存在索引进行冗余检查,判断是否存在冗余索引,避免冗余索引造成的物理内存资源开销的浪费,提升代码的执行效率;还可以通过索引的冗余检测处理对检测到操作记录的索引字段为空时添加的单列索引再次检测其添加的索引是否冗余索引,通过二次检测提升数据库的索引检测能力。
在一些实施例中,获取数据库中每个数据库表的数据量;当数据量大于数据量阈值时,获取数据库表的至少两个索引字段的查询频率,按照查询频率由高到低的顺序对至少两个索引字段进行排序。
举例来说,通过SQL语句use information_schema;select table_name,table_rows from tables where TABLE_SCHEMA='table_name'order by table_rows desc,查询数据表的数据量;当数据量大于数据量阈值时,获取数据库表的至少两个索引字段的查询频率,例如,索引字段1的查询频率是1%、索引字段2的查询频率是80%、索引字段3的查询频率是15%,将索引字段的原排序Index(索引字段1,索引字段2,索引字段3),修改为Index(索引字段2,索引字段3,索引字段1)。
在一些实施例中,获取数据库中每个数据库表的索引字段的数据内容不同的行数;确定数据内容不同的行数与索引字段的总行数的差异比值,将差异比值高于差异阈值的索引字段设置为索引。
需要说明的是,如果一个索引包含所有需要查询的字段的值,称为覆盖索引,即只需扫描索引而无须回表。这里设置为索引即为设置为覆盖索引。
在本申请实施例中,通过针对差异比值极大的索引字段建立覆盖索引,差异比值大于差异阈值的索引字段通常远小于数据行大小,将其索引字段设置为覆盖索引,只需要读取覆盖索引可以直接获取列的数据,无需读取数据行,能够极大地减少数据访问量,减少***调用次数。
在一些实施例中,根据索引对数据库的扫描结果进行排序;其中,对数据库的扫描结果进行排序需要满足以下至少之一的条件:针对数据库进行单表查询时,索引的列顺序与数据库语句中的排序字段的列顺序一致、且所有列的排序方向一致;针对数据库进行多个关联表查询时,数据库语句中的排序字段全部为第一张表。
举例来说,针对数据库进行单表查询时,SQL语句为select*from sell or der by商品编号,数量;排序的顺序默认为按照升序排序,表sell会先按照商品编号进行升序排序,如果商品编号相同,再按照数量进行升序排序;得到的排序的列顺序即为根据排序语句进行排序得到的列顺序,与按照索引排序得到的列顺序一致;所有列的排序方向即为升序或降序。针对数据库进行多个关联表查询,由于需要满足索引的最左前缀的要求,order by子句引用的字段需要全部为第一张表。
在本申请实施例中,能够实现数据库使用同一个索引即满足排序,又用于查找行。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。以社交网络客户端为例,社交网络客户端从数据库(可以为服务器数据库、也可以是本地数据库)的日志中提取出针对数据库的多个操作记录,对多个操作记录依此进行去重处理和筛选处理,根据筛选处理的结果生成数据库的优化方式,基于优化方式更新数据库,以供用户在社交网络客户端中发起查询请求时,后台总是能够针对更新后的数据库进行查询操作,提高了返回用户查询结果的处理效率,提升了用户体验。下面针对本申请实施例提供的数据库的处理方法的***构架进行详细说明,参见图5,图5是本申请实施例提供的社交网络客户端实施数据库的处理方法的原理示意图。其中,图5示出了图3中的数据库的处理装置255的另外一种功能结构示意图,数据库的处理装置255包括收集器、执行器和通知器。下面具体说明各模块的具体操作:
服务客户端,能够可视化显示社交网络客户端的框架信息,用于接收执行器发送的数据库优化方式,以对数据库进行更新。
日志客户端,能够可视化显示在框架上运行的业务生成的日志,用于接收集器发送的日志信息,从日志信息中提取多个操作记录,将多个操作记录返回给收集器。
数据库客户端,能够可视化地显示数据库管理界面。
收集器,通过扫描日志做以下统计:1)统计查询同一个表的次数;2)对操作记录中查询类型字段相同且查询条件字段相同的SQL做去重(统计1时不做去重)。同时触发2类筛选处理:1)将去重后的SQL调用Explain筛选单元进行索引的存在性检测;2)针对存在索引的SQL进行索引调优,分别如下:a.将去重后的SQL调用重复索引筛选(即索引的冗余检测处理)以及弃用索引筛选(即索引的弃用检测处理)进行索引优化检测,并输出优化方法(即对数据库的优化方式)待执行器执行;b.根据筛选单元计算公式,提出是否要增加查找索引的指引,并输出优化方法待执行器执行。
执行器,1.根据Explain筛选结果,1)将未建立索引的字段根据指令建立索引,并生成相关报告(即关于数据库的优化方式);2)对于已建立索引,但索引失效需要开发修改代码的SQL,生成相关报告;2.根据冗余索引以及弃用索引检测输出的指令,对冗余弃用指令进行删除,并生成相关报告;3.根据计算查询字段使用频率等公式筛选结果,输出覆盖索引以及索引排序的优化指令进行执行,提升代码效率,并生成相关报告。
通知器,整合执行器得出各项汇总报告触达项目组。
Explain筛选,将去重后的SQL依次调用Explain在测试数据库上进行索引存在性检查,参见图6,图6是本申请实施例提供的索引的存在性检测的检测结果的示意图,对输出结果中查询类型type为all(全表扫描)类型的数据进行以下处理:
1)当可以应用在该表中的索引possible_key(即操作记录中如图7所示的的索引字段701)为空时,对SQL自动添加单列索引,例如,select*from table1 where field1like‘%value1%’,将where后面的字段(即field1)添加为单列索引。
2)当可以应用在该表中的索引possible_key为非空时,依次调用索引失效原因,进行逐条判断,修复SQL汇总生成周知开发修改代码,举例来说,排查索引失效的原因如下:A.隐式转换导致索引失效,如int类型和string类型混淆,举例来说,错误SQL为:select*from test where tu_mdn=13333333333;其中,tu_mdn定义为varchar2(20),查询时把该字段作为number类型以where条件传给Oracle,这样会导致索引失效。正确SQL为:select*from test where tu_mdn='13333333333';B.对索引列进行运算导致索引失效,例如where后面有运算符号,举例来说,错误SQL为:select*from test where id-1=9;正确SQL为:select*from test where id=10;C.使用内部函数导致索引失效,例如,错误SQL为:select id from t where substring(name,1,3)=‘abc’,正确SQL为select id from twhere name like‘abc%’;D.使用<>、not in、not exist、!=,例如,需要使用!=不等于时,使用覆盖索引;E.like‘%...’百分号在前,例如,可以利用字符串反转函数reverse+function index的形式,变化成like'...%';F.单独引用复合索引里非第一位置的索引列,应总是使用索引的第一个列,如果索引是建立在多个列上,只有在它的第一个列被where子句引用时,优化器才会选择使用该索引。例如,满足最左前缀的查询条件的顺序为(user_name、city、age),当索引列为(city)时,则会导致索引失效;G.当变量采用的是timestamp变量,而表的字段(索引列)采用的是date变量时或相反情况;H.将空的变量值直接与比较运算符(符号)比较;I.在SQL代码中使用双引号。
重复索引筛选(即索引的冗余检测处理),使用PT工具中的重复索引检测pt-duplicate-key-checker工具对测试数据库表进行检查,输出删除冗余索引指令,待执行器执行。其中删除的冗余索引包括:1)联合索引已经包含了单列索引;2)该字段已是主键,仍再设置单列索引;3)该字段已设置单列索引,仍创建索引名不同的单列索引。参见图7,图7是本申请实施例提供的删除冗余索引的代码示意图。其中,remove this duplicateindex,execute:ALTER TABLE“db_entpay_......“.”t_cbhb_......_01”DROP INDEX“idx_ch_un……_id”,执行了删除冗余索引“idx_ch_un……_id”的操作,再次测试数据库性能,发现删除冗余索引后减少了优化器优化查询时需要比较的索引个数、减少了数据库维护冗余索引的各类开销、提高了数据库性能,而且减少了磁盘空间占用。
弃用索引筛选(即索引的弃用检测处理),使用PT工具中的索引用法检测pt_index_usage工具对慢查询日志进行检查,输出删除弃用索引的指令,待执行器执行。参见图8,图8是本申请实施例提供的索引的弃用检测处理的示意图,在数据库管理端设置慢查询等级,例如,将慢查询阈值long_query_time设置的尽可能小,当查询时间多于设定的慢查询阈值时均能记录下日志,以尽可能将SQL写入慢查询日志,即写入数据库日志端;使用PT工具中的索引用法检测pt_index_usage工具扫描慢查询日志,返回优化指令(即对数据库的优化方式)。其中,数据库日志端是由图5中的服务客户端写入的日志。
计算筛选(即排序处理),计算操作同一个表的数据库数据量,当数据库数据量大于数据量阈值时,针对同一个表,统计各个字段在日志中被查询的查询频率,将查询频率高的字段排在组合索引前,输出优化索引的指令(即生成对数据库的优化方式),待执行器执行。参见图9,图9是本申请实施例提供的索引排序优化的示意图,索引字段1的查询频率是1%、索引字段2的查询频率是80%、索引字段3的查询频率是15%,将索引字段的原排序Index(索引字段1,索引字段2,索引字段3),修改为Index(索引字段2,索引字段3,索引字段1)。
设置处理,计算数据库表内任一字段的内容不同的总行数/该字段的总行数,求得一个差异比值,对这个比例高且具备统计学差异的字段,输出设置覆盖索引的指令(使用覆盖索引可以直接获取列的数据,无需读取数据行),待执行器执行。其中,覆盖索引为使用索引来直接获取列的数据,无需读取数据行。
需要说明的是,使用索引列进行排序,需要满足以下任一个条件:1)针对数据进行单表查询时,当索引的列顺序和order by子句的顺序完全一致,并且所有列的排序方向(升序或降序)都一致时;2)针对数据库进行多个关联表查询时,当order by子句引用的字段全部为第一个表时且order by子句和查找型查询的限制是一样的:需要满足索引的最左前缀(优先匹配最左索引列)的要求。
在一些实施例中,以社交网络客户端查询聊天记录为例,社交网络客户端接收到用户A查询与用户B在2020年06月12日-2020年06月12日间的聊天记录的触发操作,触发社交网络客户端从日志中提取出针对数据库的多个操作记录(全部或部分查询数据库中的聊天记录生成的操作记录),对多个操作记录依此进行去重处理和筛选处理,根据筛选处理的结果生成数据库的优化方式,基于优化方式更新数据库,在更新后的数据库中例如以日期为索引查询数据库中对应的数据(2020年06月12日-2020年06月12日的聊天记录),以呈现在社交网络客户端的显示界面中。
在本申请实施例中,社交网络客户端总是能够针对更新后的数据库进行查询操作,提高了返回用户查询结果的处理效率,提升了用户体验。
在另一些实施例中,也可以先执行数据库的更新操作,当社交网络客户端接收到用户A查询与用户B在2020年06月12日-2020年06月12日间的聊天记录的触发操作时,在更新后的数据库中查询对应的数据,将其呈现在社交网络客户端的显示界面中。
下面继续说明本申请实施例提供的数据库的处理装置255的实施为软件模块的示例性结构,在一些实施例中,如图4所示,存储在存储器250的数据库的处理装置255中的软件模块可以包括:
提取模块2551,用于从日志中提取出针对所述数据库的多个操作记录;去重模块2552,用于对所述多个操作记录进行去重处理,以去除包括相同查询类型字段、且包括相同查询条件字段的数据库语句的操作记录;筛选模块2553,用于对进行所述去重处理后的操作记录进行筛选处理;第一优化模块2554,用于根据所述筛选处理的结果生成所述数据库的优化方式,并基于所述优化方式更新所述数据库。
在一些实施例中,所述去重模块2552,还用于以下至少之一:对所述去重处理后的操作记录进行索引的存在性检测处理;对所述去重处理后的操作记录进行索引的弃用检测处理。
在一些实施例中,所述去重模块2552,还用于在所述去重处理后的操作记录中,确定查询类型为全表扫描的操作记录,并针对所述查询类型为全表扫描的操作记录进行索引字段的检测;当检测到所述操作记录的索引字段为空时,将所述操作记录的数据库语句中所使用的查询字段作为单列索引,添加到所述字段为空的索引字段中;当检测到所述操作记录的索引字段为非空时,调用索引失效原因数据库文件,将所述操作记录的数据库语句中所使用的查询字段,与所述索引失效原因数据库文件中的查询失效字段进行比对,以得到索引失效的原因。
在一些实施例中,所述去重模块2552,还用于检测所述去重处理后的操作记录中的数据库语句,得到所述数据库语句中使用过的索引;将所述使用过的索引与所述数据库中的所有索引进行对比,确定所述所有索引中除所述使用过的索引之外的索引为弃用索引。
在一些实施例中,所述第一优化模块2554,还用于当对所述去重处理后的操作记录进行索引的存在性检测处理时,生成所述数据库的以下优化方式:基于所述索引失效的原因所指示的正确的数据库语句,对所述操作记录中的数据库语句进行修正;当对所述去重处理后的操作记录进行索引的弃用检测处理时,生成所述数据库的以下优化方式:删除所述数据库中的所述弃用索引。
在一些实施例中,本申请实施例提供的一种数据库的处理装置,还包括:第二优化模块2555,用于对所述数据库进行索引的冗余检测处理,得到所述数据库中的冗余索引;其中,所述冗余索引为至少满足以下条件之一的索引:所述索引属于联合索引中的索引字段、且被设置为单列索引;所述索引被设置为主键、且被设置为单列索引;所述索引被设置为索引名不同的至少两个单列索引;当所述数据库中的索引属于联合索引中的索引字段、且被设置为单列索引,或所述数据库中的索引被设置为主键、且被设置为单列索引时,确定所述数据库的以下优化方式:删除所述单列索引;当所述数据库中的索引被设置为索引名不同的至少两个单列索引时,确定数据库的以下优化方式:保留查询效率最高的单列索引,并删除掉除所述查询效率最高的单列索引之外的单列索引。
在一些实施例中,本申请实施例提供的一种数据库的处理装置,还包括:排序模块2556,用于获取所述数据库中每个数据库表的数据量;当所述数据量大于数据量阈值时,获取所述数据库表的至少两个索引字段的查询频率,按照所述查询频率由高到低的顺序对所述至少两个索引字段进行排序。
在一些实施例中,本申请实施例提供的一种数据库的处理装置,还包括:设置模块2557,用于获取所述数据库中每个数据库表的索引字段的数据内容不同的行数;确定所述数据内容不同的行数与所述索引字段的总行数的差异比值,将所述差异比值高于差异阈值的索引字段设置为索引。
在一些实施例中,本申请实施例提供的一种数据库的处理装置,还包括:扫描模块2558,用于根据索引对数据库的扫描结果进行排序;其中,对所述数据库的扫描结果进行排序需要满足以下至少之一的条件:针对数据进行单表查询时,索引的列顺序与数据库语句中的排序字段的列顺序一致、且所有列的排序方向一致;针对数据库进行多个关联表查询时,数据库语句中的排序字段全部为第一张表。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的数据库的处理方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图4A、4B、4C示出的数据库的处理方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件***中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
综上所述,通过本申请实施例对多个操作记录进行去重处理,提升了后续进行筛选处理和生成数据库优化方式的处理效率;提供索引存在与否的高效检测及修复的手段;能够检测出索引失败的原因并提供修复方式;能够对已存在索引进行检查,并对问题索引进行修正,提升索引优化效率,减少索引优化时间;能够对已存在索引进行冗余检查,判断是否存在冗余索引,避免冗余索引造成的物理内存资源开销的浪费,提升代码的执行效率;还可以通过索引的冗余检测处理对检测到操作记录的索引字段为空时添加的单列索引再次检测其添加的索引是否冗余索引,通过二次检测提升数据库的索引检测能力;能够实现数据库使用同一个索引即满足排序,又用于查找行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (10)
1.一种数据库的处理方法,其特征在于,包括:
从日志中提取出针对所述数据库的多个操作记录;
对所述多个操作记录进行去重处理,以去除包括相同查询类型字段、且包括相同查询条件字段的数据库语句的操作记录;
对进行所述去重处理后的操作记录进行筛选处理;
根据所述筛选处理的结果生成所述数据库的优化方式,并基于所述优化方式更新所述数据库。
2.根据权利要求1所述的方法,其特征在于,所述对进行所述去重处理后的操作记录进行筛选处理,包括以下至少之一:
对所述去重处理后的操作记录进行索引的存在性检测处理;
对所述去重处理后的操作记录进行索引的弃用检测处理。
3.根据权利要求2所述的方法,其特征在于,所述对所述去重处理后的操作记录进行索引的存在性检测处理,包括:
在所述去重处理后的操作记录中,确定查询类型为全表扫描的操作记录,并针对所述查询类型为全表扫描的操作记录进行索引字段的检测;
当检测到所述操作记录的索引字段为空时,将所述操作记录的数据库语句中所使用的查询字段作为单列索引,添加到所述字段为空的索引字段中;
当检测到所述操作记录的索引字段为非空时,调用索引失效原因数据库文件,将所述操作记录的数据库语句中所使用的查询字段,与所述索引失效原因数据库文件中的查询失效字段进行比对,以得到索引失效的原因。
4.根据权利要求2所述的方法,其特征在于,所述对所述去重处理后的操作记录进行索引的弃用检测处理,包括:
检测所述去重处理后的操作记录中的数据库语句,得到所述数据库语句中使用过的索引;
将所述使用过的索引与所述数据库中的所有索引进行对比,确定所述所有索引中除所述使用过的索引之外的索引为弃用索引。
5.根据权利要求3或4所述的方法,其特征在于,所述根据所述筛选处理的结果生成所述数据库的优化方式,包括:
当对所述去重处理后的操作记录进行索引的存在性检测处理时,生成所述数据库的以下优化方式:基于所述索引失效的原因所指示的正确的数据库语句,对所述操作记录中的数据库语句进行修正;
当对所述去重处理后的操作记录进行索引的弃用检测处理时,生成所述数据库的以下优化方式:删除所述数据库中的所述弃用索引。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述数据库进行索引的冗余检测处理,得到所述数据库中的冗余索引;
其中,所述冗余索引为至少满足以下条件之一的索引:
所述索引属于联合索引中的索引字段、且被设置为单列索引;
所述索引被设置为主键、且被设置为单列索引;
所述索引被设置为索引名不同的至少两个单列索引;
当所述数据库中的索引属于联合索引中的索引字段、且被设置为单列索引,或所述数据库中的索引被设置为主键、且被设置为单列索引时,确定所述数据库的以下优化方式:删除所述单列索引;
当所述数据库中的索引被设置为索引名不同的至少两个单列索引时,确定数据库的以下优化方式:保留查询效率最高的单列索引,并删除掉除所述查询效率最高的单列索引之外的单列索引。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述数据库中每个数据库表的数据量;
当所述数据量大于数据量阈值时,获取所述数据库表的至少两个索引字段的查询频率,按照所述查询频率由高到低的顺序对所述至少两个索引字段进行排序。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述数据库中每个数据库表的索引字段的数据内容不同的行数;
确定所述数据内容不同的行数与所述索引字段的总行数的差异比值,将所述差异比值高于差异阈值的索引字段设置为索引。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括;
根据索引对数据库的扫描结果进行排序;
其中,对所述数据库的扫描结果进行排序需要满足以下至少之一的条件:
针对所述数据库进行单表查询时,索引的列顺序与数据库语句中的排序字段的列顺序一致、且所有列的排序方向一致;
针对所述数据库进行多个关联表查询时,数据库语句中的排序字段全部为第一张表。
10.一种数据库的处理装置,其特征在于,包括:
提取模块,用于从日志中提取出针对所述数据库的多个操作记录;
去重模块,用于对所述多个操作记录进行去重处理,以去除包括相同查询类型字段、且包括相同查询条件字段的数据库语句的操作记录;
筛选模块,用于对进行所述去重处理后的操作记录进行筛选处理;
第一优化模块,用于根据所述筛选处理的结果生成所述数据库的优化方式,并基于所述优化方式更新所述数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011232453.9A CN114443625A (zh) | 2020-11-06 | 2020-11-06 | 数据库的处理方法、装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011232453.9A CN114443625A (zh) | 2020-11-06 | 2020-11-06 | 数据库的处理方法、装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114443625A true CN114443625A (zh) | 2022-05-06 |
Family
ID=81362139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011232453.9A Pending CN114443625A (zh) | 2020-11-06 | 2020-11-06 | 数据库的处理方法、装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114443625A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117331919A (zh) * | 2023-09-18 | 2024-01-02 | 本原数据(北京)信息技术有限公司 | 数据库联合查询方法、装置、电子设备及存储介质 |
-
2020
- 2020-11-06 CN CN202011232453.9A patent/CN114443625A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117331919A (zh) * | 2023-09-18 | 2024-01-02 | 本原数据(北京)信息技术有限公司 | 数据库联合查询方法、装置、电子设备及存储介质 |
CN117331919B (zh) * | 2023-09-18 | 2024-06-11 | 本原数据(北京)信息技术有限公司 | 数据库联合查询方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3327588B1 (en) | Value-id-based sorting in column-store databases | |
US8140495B2 (en) | Asynchronous database index maintenance | |
US8712972B2 (en) | Query optimization with awareness of limited resource usage | |
US8924373B2 (en) | Query plans with parameter markers in place of object identifiers | |
JP2022534215A (ja) | ハイブリッド・インデックス作成方法、システム、プログラム | |
US20160147786A1 (en) | Efficient Database Undo / Redo Logging | |
CN105793843A (zh) | 用于oltp和分析工作量的用于内存数据库的组合行和列式存储 | |
CN111259004B (zh) | 一种存储引擎中数据索引的方法以及相关装置 | |
JP3914662B2 (ja) | データベース処理方法及び実施装置並びにその処理プログラムを記憶した媒体 | |
KR101549220B1 (ko) | 데이터베이스 관리 방법, 시스템 및 데이터베이스 트리 구조 | |
CN110795614A (zh) | 一种索引自动优化方法及装置 | |
CN111324604A (zh) | 数据库表的处理方法、装置、电子设备及存储介质 | |
Kvet et al. | Master index access as a data tuple and block locator | |
CN114443625A (zh) | 数据库的处理方法、装置 | |
US20220222146A1 (en) | Versioned backup on an object addressable storage system | |
US20160004749A1 (en) | Search system and search method | |
CN115391424A (zh) | 数据库查询的处理方法、存储介质与计算机设备 | |
CN115543993A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN116680299B (zh) | 数据库查询方法、***、存储介质以及设备 | |
CN115827653B (zh) | 一种用于htap和海量数据的纯列式更新方法及装置 | |
CN113553320B (zh) | 数据质量监控方法及装置 | |
CN115809268B (zh) | 一种基于分片索引的自适应查询方法和装置 | |
CN114238241B (zh) | 财务数据的元数据处理方法和计算机*** | |
KR20150044013A (ko) | 데이터베이스 관리 방법, 시스템 및 데이터베이스 트리 구조 | |
US20240054103A1 (en) | Systems and methods for block properties in log-structured merge tree storage |
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 |