CN116595010A - 数据库索引的优化方法、存储介质与设备 - Google Patents

数据库索引的优化方法、存储介质与设备 Download PDF

Info

Publication number
CN116595010A
CN116595010A CN202310632686.5A CN202310632686A CN116595010A CN 116595010 A CN116595010 A CN 116595010A CN 202310632686 A CN202310632686 A CN 202310632686A CN 116595010 A CN116595010 A CN 116595010A
Authority
CN
China
Prior art keywords
index
database
partition
optimizing
preset
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
CN202310632686.5A
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.)
Beijing Kingbase Information Technologies Co Ltd
Original Assignee
Beijing Kingbase Information Technologies 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 Beijing Kingbase Information Technologies Co Ltd filed Critical Beijing Kingbase Information Technologies Co Ltd
Priority to CN202310632686.5A priority Critical patent/CN116595010A/zh
Publication of CN116595010A publication Critical patent/CN116595010A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种数据库索引的优化方法、存储介质与设备。其中上述方法包括:获取数据库操作;根据数据库操作确定索引;根据索引在预设索引系统表中查找需要执行操作的索引分区,预设索引系统表用于记录索引与自身分区的对应关系;根据数据库操作的类型执行对应的操作。通过这种方法,在数据库中将索引进行分区,在接口调用数据库时根据预设系统表找到需要执行的索引分区,从而将高并发的压力分散到各个索引分区中,降低每个索引的并发访问冲突,以此来提升数据库的性能,并且索引分区能够根据调用数据库的接口中的信息来自行确定,提升了数据库使用的便利性。

Description

数据库索引的优化方法、存储介质与设备
技术领域
本发明涉及数据库技术,特别是涉及一种数据库索引的优化方法、存储介质与设备。
背景技术
在数据库的缓冲区管理逻辑中,通常都会使用引用计数的方式来确定当前有多少人在使用该缓冲区,进一步来确定在缓冲区替换的时候是否可以将其逐出。
在对数据库进行操作时,通常是根据索引找到需要操作的数据,寻找数据的过程一般是基于B树及其变种的查询操作。查询数据通常是从根节点出发向分支节点及叶子节点逐层下降的过程。所有基于B树的读写操作,都会需要访问根节点的缓冲区,而访问根节点的缓冲区则都需要将引用计数加/减1,在高并发的情况下,该节点显然会容易成为一个单点瓶颈。
更进一步的,在吞吐量较大的情况,根节点的下层节点,也有可能会形成瓶颈点。
发明内容
本发明的一个目的是提升数据库的性能。
本发明一个进一步的目的是降低每个索引的并发访问冲突。
本发明一个进一步的目的是将索引进行合理地分区。
特别地,本发明提供了一种数据库索引的优化方法,其包括:
获取数据库操作;
根据数据库操作确定索引;
根据索引在预设索引系统表中查找需要执行操作的索引分区,预设索引系统表用于记录索引与索引分区的对应关系;
根据数据库操作的类型执行对应的操作。
可选地,获取数据库操作的步骤之前包括:
获取调用数据库的接口;
判断接口是否需要创建索引分区;
若是,根据接口中参数确定索引分区的数量以及索引分区的范围;
通过预设索引系统表记录索引与索引分区的对应关系。
可选地,根据索引在预设索引系统表中查找需要执行操作的索引分区的步骤包括:
从数据库操作中确定索引的限制条件;
从预设索引系统表中查找索引对应的索引分区;
根据限制条件对索引分区进行剪枝操作,以得到需要执行操作的索引分区。
可选地,根据数据库操作的类型执行对应的操作的步骤包括:
创建数据库操作对应的目标索引扫描路径;
根据目标索引扫描路径执行对应操作。
可选地,根据目标索引扫描路径执行对应操作的步骤之后包括:
判断数据库操作是否为查询操作;
若否,则在目标索引扫描路径执行完毕之后,根据执行结果对索引及其索引分区进行更新。
可选地,根据执行结果对索引进行更新的步骤包括:
根据执行结果获取索引列的值,
根据索引列的值查询并更新预设索引系统表中对应的索引分区。
可选地,创建数据库操作对应的目标索引扫描路径的步骤包括:
判断数据库操作是否只存在单个索引分区;
若只存在单个索引分区,则创建单个索引分区对应的索引扫描路径作为目标索引扫描路径。
可选地,判断数据库操作是否只存在单个索引分区的步骤之后还包括:
在存在多个索引分区的情况下,通过拼接节点将索引分区对应的索引扫描路径进行合并,从而生成目标索引扫描路径。
根据本发明的另一个方面,还提供了一种机器可读存储介质,其上存储有机器可执行程序,机器可执行程序被处理器执行时实现上述任一种的数据库索引的优化方法。
根据本发明的又一个方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的机器可执行程序,并且处理器执行机器可执行程序时实现上述任一种的数据库索引的优化方法。
本发明的数据库索引的优化方法,在获取到数据库操作之后,根据数据库操作确定所需要用到的索引;根据此索引在预设索引系统表中找到对应的索引分区,根据数据库操作中的查询限制条件对索引分区进行剪枝操作,以得到需要执行操作的索引分区;根据上述索引分区创建数据库操作对应的索引扫描路径;根据索引扫描路径执行对应操作,在操作结束之后判断数据库操作是否为查询操作;若否,则在其他索引扫描路径执行完毕之后,根据执行结果对索引进行更新。通过本方法,能够在高并发时,利用索引分区的操作来降低各个节点的高并发访问冲突,从而提升数据库的性能。
进一步地,本发明的数据库索引的优化方法,会根据调用数据库的接口来确定是否开启索引分区的操作,在确定开启之后,能够根据接口中的参数来确定索引分区的数量以及范围,并通过预设索引系统表记录索引及其分区索引的关系。通过此方法根据实际需求对索引进行合理地分区。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
图1是根据本发明一个实施例的数据库索引的优化方法的流程示意图;
图2是根据本发明一个实施例的数据库索引的优化方法的索引分区流程示意图;
图3是根据本发明一个实施例的数据库索引的优化方法中机器可读存储介质的示意图;以及
图4是根据本发明一个实施例的数据库索引的优化方法中计算机设备的示意图。
具体实施方式
本领域技术人员应当理解的是,下文所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,该一部分实施例旨在用于解释本发明的技术原理,并非用于限制本发明的保护范围。基于本发明提供的实施例,本领域普通技术人员在没有付出创造性劳动的情况下所获得的其它所有实施例,仍应落入到本发明的保护范围之内。
针对于高并发导致的节点瓶颈,一种可选的做法是通过固定根节点以及部分中间节点的缓冲区,以此来确保这些缓冲区不会被换出,避免这些缓冲区的引用计数操作,进而降低并发访问冲突。
但该方法也存在一些问题,固定缓冲区的方式需要人工指定,并且当这些节点需要分裂的时候,会需要切换固定与非固定的两种状态,该操作需要较为精巧的逻辑控制,并且需要加锁操作,可能会带来性能上的抖动。
为了解决上述问题,本方法提出通过将一个根节点的访问分散到N个根分区上,也就是将表分区的概念引入到索引中,将一个索引拆分为N个索引,每个索引的并发访问冲突则只有原来的1/N。
图1是根据本发明一个实施例的数据库索引的优化方法的流程示意图。该示意图流程包括:
步骤S101,获取数据库操作。在本步骤之前,数据库会先根据调用数据库的接口中的参数来确定是否创建索引分区;当确认需要创建索引分区之后,数据库会根据上述接口中的参数来确定索引分区的数量以及索引分区的范围,并且在索引分区之后将索引与分区索引的对应关系记录在预设系统表中。
步骤S102,根据数据库操作确定索引。本步骤包括:根据步骤S101获取的数据库操作中的查询条件确定是否可以使用索引,在可以使用索引的情况下,确定所要使用的索引。
步骤S103,根据索引在预设索引系统表中查找需要执行操作的索引分区。本步骤包括:从数据库操作中确定索引的限制条件;随后从预设索引系统表中查找索引对应的索引分区;根据获取的限制条件对索引分区进行剪枝操作,从而过滤掉不需要执行的索引分区。需要说明的是,本步骤中的剪枝操作是能够提升数据库执行速度的一种优选的执行方式,本领域技术人员可以根据实际情况选择是否进行剪枝操作。
为了更加清楚地体现分区剪枝的作用,特提供一示例如:
Select*from test where id=150;
当执行上述SQL语句时,使用索引分区但不使用分区剪枝操作的执行情况如下所示:
Append
->Index Scan using idx_test_part1 on test
Index Cond:(id=150)
->Index Scan using idx_test_part2 on test
Index Cond:(id=150)
->Index Scan using idx_test_part3 on test
Index Cond:(id=150)
->Index Scan using idx_test_part4 on test
Index Cond:(id=150)
当使用分区剪枝操作之后的示例如下:
Index Scan using idx_test_part2 on test
Index Cond:(id=150)
数据库会根据SQL语句中的限制条件与索引分区的范围找到需要执行操作的索引分区。
步骤S104,根据数据库操作的类型执行对应的操作。本步骤包括:判断数据库操作是否只存在单个索引分区;若只存在单个索引分区,则创建单个索引分区对应的索引扫描路径作为目标索引扫描路径;在存在多个索引分区的情况下,通过拼接节点将索引分区对应的索引扫描路径进行合并,从而生成目标索引扫描路径。
在根据目标索引扫描路径执行完毕之后,判断本次操作是否为查询操作,若是查询操作,则说明不会对索引产生影响,结束本次操作;若不是查询操作,则其他增删改等操作可能会对索引及其索引分区产生影响,故根据执行结果获取对应索引列的值,随后根据索引列的值更新预设索引系统表中索引分区的信息。
通过本方法,在数据库中将索引进行分区,从而在接口调用数据库时根据预设系统表找到需要执行的索引分区,从而将高并发的压力分散到各个索引分区中,以此来提升数据库的性能,并且索引分区能够根据调用数据库的接口中的信息来自行确定,提升了数据库使用的便利性。
图2是根据本发明一个实施例的数据库索引的优化方法的索引分区流程示意图。本示意图包括:
步骤S201,获取调用数据库的接口。
步骤S202,判断是否创建索引分区。本步骤包括:根据接口中的参数判断是否创建索引分区。例如:当接口中的某一设定属性为true或者出现创建索引分区的指令时,即判定为创建索引分区。
步骤S203,在步骤S202判断为是的情况下,根据接口中的参数确定索引分区的数量及范围。本步骤包括:根据接口中的其他设定属性的值来确定数据库中索引所要分区的数量以及范围。
步骤S204,将索引及索引分区的对应关系记录在预设系统表中。
通过本方法,使得数据库能够根据调用接口的实际需求从而生成不同的索引分区,提升了使用数据库索引分区的便利性。
为了更加清楚地说明本方法,特提供一种预设系统表的具体示例如表1所示:
表1
index_name index_oid parent_index_oid range
idx_test 10010 0
idx_test_part1 10011 10010 (负无穷大,100]
idx_test_part2 10012 10010 (100,200]
idx_test_part3 10013 10010 (200,300]
idx_test_part4 10014 10010 (300,正无穷大]
其中,index_name表示索引名称;
index_oid表示索引id;
parent_index_oid表示索引的父级索引id;
range表示索引分区的范围;
通过此种表格来记录索引及其索引分区的对应关系。
需要说明的是,表1所示的仅为一种对应关系的示例,本领域技术人员可以根据实际需要确定系统表的格式以及内容。
本实施还提供了一种机器可读存储介质和计算机设备。图3是根据本发明一个实施例的机器可读存储介质301的示意图,图4是根据本发明一个实施例的计算机设备403的示意图。
机器可读存储介质301其上存储有机器可执行程序302,机器可执行程序302被处理器执行时实现上述任一实施例的数据库索引的优化方法。
计算机设备403可以包括存储器401、处理器402及存储在存储器401上并在处理器402上运行的机器可执行程序302,并且处理器402执行机器可执行程序302时实现上述任一实施例的数据库索引的优化方法。
需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,对索引进行分区,可以具体实现在任何机器可读存储介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
就本实施例的描述而言,机器可读存储介质301可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。机器可读存储介质301的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,机器可读存储介质301甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。
计算机设备403可以是例如服务器、台式计算机、笔记本式计算机、平板计算机或智能手机。在一些示例中,计算机设备403可以是云计算节点。计算机设备403可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机设备403可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
计算机设备403可以包括适于执行存储的指令的处理器402、在操作期间为所述指令的操作提供临时存储空间的存储器401。处理器402可以是单核处理器、多核处理器、计算集群或任何数量的其他配置。存储器401可以包括随机存取存储器(RAM)、只读存储器、闪存或任何其他合适的存储系统。
处理器402可以通过系统互连(例如PCI、PCI-Express等)连接到适于将计算机设备403连接到一个或多个I/O设备(输入/输出设备)的I/O接口(输入/输出接口)。I/O设备可以包括例如键盘和指示设备,其中指示设备可以包括触摸板或触摸屏等等。I/O设备可以是计算机设备403的内置组件,或者可以是外部连接到计算设备的设备。
处理器402也可以通过系统互连链接到适于将计算机设备403连接到显示设备的显示接口。显示设备可以包括作为计算机设备403的内置组件的显示屏。显示设备还可以包括外部连接到计算机设备403的计算机监视器、电视机或投影仪等。此外,网络接口控制器(network interface controller,NIC)可以适于通过系统互连将计算机设备403连接到网络。在一些实施例中,NIC可以使用任何合适的接口或协议(诸如因特网小型计算机系统接口等)来传输数据。网络可以是蜂窝网络、无线电网络、广域网(WAN))、局域网(LAN)或因特网等等。远程设备可以通过网络连接到计算设备。
本实施例提供的流程图并不旨在指示方法的操作将以任何特定的顺序执行,或者方法的所有操作都包括在所有的每种情况下。此外,方法可以包括附加操作。在本实施例方法提供的技术思路的范围内,可以对上述方法进行附加的变化。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。

Claims (10)

1.一种数据库索引的优化方法,包括:
获取数据库操作;
根据所述数据库操作确定索引;
根据所述索引在预设索引系统表中查找需要执行操作的索引分区,所述预设索引系统表用于记录索引与索引分区的对应关系;
根据所述数据库操作的类型执行对应的操作。
2.根据权利要求1所述的数据库索引的优化方法,其中,
所述获取数据库操作的步骤之前包括:
获取调用所述数据库的接口;
判断所述接口是否需要创建索引分区;
若是,根据所述接口中参数确定索引分区的数量以及索引分区的范围;
通过预设索引系统表记录所述索引与所述索引分区的对应关系。
3.根据权利要求1所述的数据库索引的优化方法,其中,
所述根据所述索引在预设索引系统表中查找需要执行操作的索引分区的步骤包括:
从所述数据库操作中确定所述索引的限制条件;
从所述预设索引系统表中查找所述索引对应的索引分区;
根据所述限制条件对所述索引分区进行剪枝操作,以得到需要执行操作的索引分区。
4.根据权利要求1所述的数据库索引的优化方法,其中,
所述根据所述数据库操作的类型执行对应的操作的步骤包括:
创建所述数据库操作对应的目标索引扫描路径;
根据所述目标索引扫描路径执行对应操作。
5.根据权利要求4所述的数据库索引的优化方法,其中,
所述根据所述目标索引扫描路径执行对应操作的步骤之后包括:
判断所述数据库操作是否为查询操作;
若否,则在所述目标索引扫描路径执行完毕之后,根据执行结果对所述索引及其索引分区进行更新。
6.根据权利要求5所述的数据库索引的优化方法,其中,
所述根据执行结果对所述索引进行更新的步骤包括:
根据所述执行结果获取索引列的值,
根据所述索引列的值查询并更新所述预设索引系统表中对应的索引分区。
7.根据权利要求4所述的数据库索引的优化方法,其中,
所述创建所述数据库操作对应的目标索引扫描路径的步骤包括:
判断所述数据库操作是否只存在单个索引分区;
若只存在单个索引分区,则创建所述单个索引分区对应的索引扫描路径作为所述目标索引扫描路径。
8.根据权利要求7所述的数据库索引的优化方法,其中,
所述判断所述数据库操作是否只存在单个索引分区的步骤之后还包括:
在存在多个索引分区的情况下,通过拼接节点将所述索引分区对应的索引扫描路径进行合并,从而生成所述目标索引扫描路径。
9.一种机器可读存储介质,其上存储有机器可执行程序,所述机器可执行程序被处理器执行时实现根据权利要求1至8任一项所述的数据库索引的优化方法。
10.一种计算机设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的机器可执行程序,并且所述处理器执行所述机器可执行程序时实现根据权利要求1至8任一项所述的数据库索引的优化方法。
CN202310632686.5A 2023-05-30 2023-05-30 数据库索引的优化方法、存储介质与设备 Pending CN116595010A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310632686.5A CN116595010A (zh) 2023-05-30 2023-05-30 数据库索引的优化方法、存储介质与设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310632686.5A CN116595010A (zh) 2023-05-30 2023-05-30 数据库索引的优化方法、存储介质与设备

Publications (1)

Publication Number Publication Date
CN116595010A true CN116595010A (zh) 2023-08-15

Family

ID=87611505

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310632686.5A Pending CN116595010A (zh) 2023-05-30 2023-05-30 数据库索引的优化方法、存储介质与设备

Country Status (1)

Country Link
CN (1) CN116595010A (zh)

Similar Documents

Publication Publication Date Title
KR20200146006A (ko) 애플리케이션 업그레이드 방법, 장치, 기기 및 저장 매체
CN110990420B (zh) 数据查询方法、装置
CN107368513B (zh) 客户端数据库更新的方法及装置
WO2021031583A1 (zh) 执行语句的方法、装置、服务器及存储介质
CN114090113B (zh) 数据源处理插件动态加载的方法、装置、设备及存储介质
CN110046181B (zh) 基于数据库分布式存储的数据路由的方法和装置
CN112612818B (zh) 一种数据处理方法及装置、计算设备和存储介质
CN111752916B (zh) 数据采集方法及装置、计算机可读存储介质、电子设备
CN112540995A (zh) 数据更新方法、电子设备及存储介质
CN117076491A (zh) 一种数据处理方法、存储介质与设备
CN116467310A (zh) 无效索引的无锁标记方法、存储介质和计算机设备
CN111414422A (zh) 一种数据分布方法、装置、设备和存储介质
CN116595010A (zh) 数据库索引的优化方法、存储介质与设备
CN115328939A (zh) 数据库处理查询语句的方法、存储介质与计算机设备
CN112671567B (zh) 一种基于服务化接口的5g核心网拓扑发现方法及装置
CN110333883B (zh) 一种更新持久化数据的方法及装置
CN117093611B (zh) 数据库组合索引建议处理方法、存储介质和计算机设备
US20220334829A1 (en) Custom abap cloud enabler
CN118093667A (zh) 分布式数据库查询统计数量的方法、介质与计算机设备
US12093686B2 (en) Code maintenance system
CN117235118B (zh) 一种查询优化方法、存储介质与计算机设备
CN116126902A (zh) SQL中分区剪枝支持like操作的方法和存储介质
CN118035210A (zh) 数据库的数据字典管理方法、存储介质、设备及产品
CN118277430A (zh) 数据库的数据字典使用方法、设备、介质及产品
CN117743399A (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
CB02 Change of applicant information

Country or region after: China

Address after: 100102 201, 2 / F, 101, No. 5 building, No. 7 Rongda Road, Chaoyang District, Beijing

Applicant after: China Electronics Technology Group Jincang (Beijing) Technology Co.,Ltd.

Address before: 100102 201, 2 / F, 101, No. 5 building, No. 7 Rongda Road, Chaoyang District, Beijing

Applicant before: BEIJING KINGBASE INFORMATION TECHNOLOGIES Inc.

Country or region before: China