CN114328611A - 数据索引方法、装置、设备及存储介质 - Google Patents
数据索引方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114328611A CN114328611A CN202111680734.5A CN202111680734A CN114328611A CN 114328611 A CN114328611 A CN 114328611A CN 202111680734 A CN202111680734 A CN 202111680734A CN 114328611 A CN114328611 A CN 114328611A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- database
- amount
- data amount
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据检索技术领域,尤其涉及一种数据索引方法、装置、设备及存储介质。本发明通过将索引信息在数据库线程池中的多个数据分块并行查找索引信息对应的目标数据,减少索引时间,通过同时对多个线程池进行数据索引,避免了在分布式数据库中进行数据索引时,效率较低的技术问题,提高了系统的索引效率。
Description
技术领域
本发明涉及数据检索技术领域,尤其涉及一种数据索引方法、装置、设备及存储介质。
背景技术
在需要查询分布式数据库中的数据时,常规数据查询方式是将用户的索引指令按照数据库中的存储顺序进行顺序索引,索引效率较低,无法满足用户的需求。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种数据索引方法、装置、设备及存储介质,旨在解决现有技术中在分布式数据库中进行数据索引时,效率较低的技术问题。
为实现上述目的,本发明提供了一种数据索引方法,所述方法包括以下步骤:
在接收到目标客户端的数据索引指令时,根据所述数据索引指令生成索引信息;
基于所述索引信息在数据库线程池的多个数据分块中并行查找对应的目标数据;
将所述目标数据发送至所述目标客户端进行显示。
可选地,所述基于所述索引信息在数据库线程池的多个数据分块中并行查找对应的目标数据之前,还包括:
获取数据库数据总量与内核数量;
根据所述内核数量对所述数据库数据总量进行数据分块,获得目标线程数据量;
根据所述目标线程数据量生成数据库线程池。
可选地,所述根据所述内核数量对所述数据库数据总量进行数据分块,获得目标线程数据量,包括:
根据所述内核数量对所述数据库数据总量进行数据分块,获得目标任务块数据量与剩余数据量;
在所述目标任务块数据量大于预设数据量时,根据所述目标任务块数据量确定目标线程数据量;
将所述剩余数据量记为数据库数据总量,并返回所述根据所述内核数量对所述数据库数据总量进行数据分块,获得目标任务块数据量与剩余数据量的步骤。
可选地,所述根据所述内核数量对所述数据库数据总量进行数据分块,获得目标任务块数据量与剩余数据量之后,还包括:
在所述目标任务块数据量不大于预设数据量时,将所述数据库数据总量与所述预设数据量进行对比;
在所述数据库数据总量大于所述预设数据量时,根据所述预设数据量确定目标线程数据量;
根据所述目标线程数据量与数据库数据总量更新剩余数据量,并将所述剩余数据量记为数据库数据总量;
返回所述根据所述内核数量对所述数据库数据总量进行数据分块,获得目标任务块数据量与剩余数据量的步骤。
可选地,所述将所述数据库数据总量与所述预设数据量进行对比之后,还包括:
在所述数据库数据总量不大于所述预设数据量时,根据所述数据库数据总量确定目标线程数据量。
可选地,所述根据所述数据索引指令生成索引信息,包括:
根据所述数据索引指令确定目标通信从机,并获取所述目标通信从机的负载参数;
在所述目标通信从机的负载参数小于预设负载阈值时,根据所述数据索引指令通过目标逻辑表生成索引信息。
可选地,所述将所述目标数据发送至客户端进行显示之后,还包括:
在接收到扩容指令时,根据所述扩容指令在数据库中生成新增分片;
根据所述扩容指令确定待迁移数据;
将所述待迁移数据添加至所述新增分片中进行存储,并将所述待迁移数据从原分片节点中移除;
将所述原分片节点中的节点数据与所述新增分片节点中的节点数据与备用数据库进行校验;
在校验通过时,生成路由切换信息,并将所述路由切换信息传输至代理端,以使所述代理端根据所述路由切换信息进行路由切换。
此外,为实现上述目的,本发明还提出一种数据索引装置,所述数据索引装置包括:信息生成模块、数据查找模块以及数据显示模块;
所述信息生成模块,用于在接收到数据索引指令时,根据所述数据索引指令通过目标逻辑表生成索引信息;
所述数据查找模块,用于基于所述索引信息在数据库线程池中查找对应的目标数据;
所述数据显示模块,用于将所述目标数据发送至客户端进行显示。
此外,为实现上述目的,本发明还提出一种数据索引设备,所述数据索引设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据索引程序,所述数据索引程序配置为实现如上文所述的数据索引方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有数据索引程序,所述数据索引程序被处理器执行时实现如上文所述的数据索引方法的步骤。
本发明公开了在接收到目标客户端的数据索引指令时,根据所述数据索引指令生成索引信息;基于所述索引信息在数据库线程池的多个数据分块中并行查找对应的目标数据;将所述目标数据发送至所述目标客户端进行显示;与现有技术相比,本发明通过将索引信息在数据库线程池中的多个数据分块并行查找索引信息对应的目标数据,减少索引时间,通过同时对多个线程池进行数据索引,避免了在分布式数据库中进行数据索引时,效率较低的技术问题,提高了系统的索引效率。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的数据索引设备的结构示意图;
图2为本发明数据索引方法第一实施例的流程示意图;
图3为本发明数据索引方法第二实施例的流程示意图;
图4为本发明数据索引方法第三实施例的流程示意图;
图5为本发明数据索引方法一实施例的数据复制示意图;
图6为本发明数据索引方法一实施例的新增分片数据迁移示意图;
图7为本发明数据索引装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的数据索引设备结构示意图。
如图1所示,该数据索引设备可以包括:处理器1001,例如中央处理器(CentralProcessing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,Wi-Fi)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM),也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对数据索引设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据索引程序。
在图1所示的数据索引设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明数据索引设备中的处理器1001、存储器1005可以设置在数据索引设备中,所述数据索引设备通过处理器1001调用存储器1005中存储的数据索引程序,并执行本发明实施例提供的数据索引方法。
本发明实施例提供了一种数据索引方法,参照图2,图2为本发明一种数据索引方法第一实施例的流程示意图。
本实施例中,所述数据索引方法包括以下步骤:
步骤S10:在接收到目标客户端的数据索引指令时,根据所述数据索引指令生成索引信息。
需要说明的是,本实施例方法的执行主体可以是数据索引设备,其中,数据索引设备可以是具有数据处理、数据通信以及数据查询功能的设备,例如:数据库通信主机等。在本实施例以及下述实施例中,将会以数据库通信主机为例进行说明。
应当理解的是,现有技术中针对数据库中存储的数据进行索引或者更新请求等是通过对数据库进行单线程的操作,要是想对于线程组进行更新或者查询,就需要切换操作指令以实现对于在线程组之间进行轮询操作,在系统内核处于重负载时,会严重影响内核性能。
值得说明的是,数据索引指令是指用户通过客户端输入的操作指令,其中,操作指令用于根据用户的需要确定需要索引的数据。
应当理解的是,索引信息是指需要查询的数据对应的标识信息,例如:在查询某网络对应的安全防护日志时,索引信息可以是该网络的域名信息。
此外,由于在实际操作中,数据索引指令通过客户端传输至通信主机的过程中,还需要通过通信从机的中继,以使得数据索引指令可以确定索引信息,但是通信从机与客户端之间不是一对一的连接,可能出现多个客户端同时通过通信从机进行数据查询或者数据处理等操作,当出现这种情况时,通信从机的负载就会升高,导致中继指令效率变低。
进一步地,为了解决存在多个客户端通过同一通信从机下发操作指令导致从机通信效率变低的问题,所述步骤S10,包括:
根据所述数据索引指令确定目标通信从机,并获取所述目标通信从机的负载参数;
在所述目标通信从机的负载参数小于预设负载阈值时,根据所述数据索引指令通过目标逻辑表生成索引信息。
可以理解的是,预设负载阈值是指通信从机的负载参数超过某一个值时,通信从机中继用户操作指令的效率会明显降低的参数值,其中,预设负载阈值可以由用户自行设置,本实施例对此不做具体限制。
同时,在目标通信从机的负载参数小于预设负载阈值,表示此时的通信从机的负载中继操作指令的效率足够继续进行工作,即可以将数据索引指令通过目标逻辑表生成索引信息。
需要说明的是,目标逻辑表是指应用在运行时,向外提供的业务表,例如:分表、广播表以及单表,对于应用来说,读写数据完全透明,对用户呈现的表实际上是逻辑表屏蔽了物理层实际存储规则,业务无需关心数据层如何存储,只需要基于业务表应该如何设计,在本实施例中,逻辑表的设计与数据库中的数据形式存在关联。
例如:数据库中存储的数据较大,此时需要对该数据进行切分,以使数据可以在数据库中进行存储,此时就可以通过分表的形式对数据进行切分,将数据切分为多个数据库中进行存储,每个分片中存储的数据结合就构成了一个完整的数据;对于广播表而言,广播表的所有操作都将广播到所有物理分片中,每个分片都有广播表的全量数据;单表则主要用于存储一些无需分片的表:该表的数据全量存在第一个物理分片中,所有该类型的表都放在第一个物理分片中,语法和使用防范和mysql完全一样,可以把单表理解为一个非分布式的表。
值得说明的是,在目标通信从机的负载不小于预设负载阈值时,即目标通信从机的负载过大,已经影响到了目标通信从机的中继效率,例如:同一个通信从机同时连接了五个客户端,其中,有四个客户端都在进行数据写入的操作,此时,对于该通信从机而言,所承受的负载过大,会影响最后一个客户端的数据查询的效率,此时,可以将该数据查询指令通过其他的通信从机进行转发中继,以生成索引信息。
此外,数据库架构中每个从机都能支持只读能力,如果配置有多个从机,将由网关集群自动分配到低负载从机上,以支撑大型应用程序的读取流量;提供多种读写分离方案,且无需关注若干从机是否完全存活,因为系统将根据策略自动调度;通过多种只读方案的组合,可以配置出复杂的只读方案,以满足各种业务需求和开发的灵活性。
步骤S20:基于所述索引信息在数据库线程池的多个数据分块中并行查找对应的目标数据。
需要说明的是,数据库线程池用于根据索引信息同时进行查询索引信息对应的目标数据,其中,由于在系统内核可以同时处理多个线程的同步运行,在对数据库内存储的数据进行查询时,通过将存储的数据进行任务分块,以使所有的数据分块同时根据索引信息进行并行查找索引信息对应的目标数据,提高数据索引的效率。
易于理解的是,本实施例通过减少线程之间的指令切换,同时进行多个线程操作,可以更好的利用系统内核处理资源,其中,并行操作线程的数据取决于系统内核,系统内核性能越好,可以同时运行线程数越多,系统内核数量越多,可以同时运行的线程数越多。
步骤S30:将所述目标数据发送至所述目标客户端进行显示。
值得说明的是,在通信主机获得索引信息对应的目标数据后,将该索引信息通过负载较小的通信从机转发至目标客户端,以使用户获得需要的目标数据。
本实施例公开了在接收到目标客户端的数据索引指令时,根据所述数据索引指令生成索引信息;基于所述索引信息在数据库线程池的多个数据分块中并行查找对应的目标数据;将所述目标数据发送至所述目标客户端进行显示;本实施例通过将索引信息在数据库线程池中的多个数据分块并行查找索引信息对应的目标数据,减少索引时间,通过同时对多个线程池进行数据索引,避免了在分布式数据库中进行数据索引时,效率较低的技术问题,提高了系统的索引效率。
参考图3,图3为本发明一种数据索引方法第二实施例的流程示意图。
基于上述第一实施例,在本实施例中,所述步骤S20之前,还包括:
步骤S110:获取数据库数据总量与内核数量。
需要说明的是,数据库数据总量是指在目标数据库中的存储的总数据量;内核数量可以是系统所采用的处理芯片数量,例如:CPU的数量等,一个处理器拥有两个CPU,则该处理器的内核数量为2。
步骤S120:根据所述内核数量对所述数据库数据总量进行数据分块,获得目标线程数据量。
值得说明的是,目标线程数据量是指通过数据分块后,获得的任务块存储的数据量,其中,对于数据进行分块的规则与数据库总任务量以及系统内核数量的二倍比值有关,即任务块数据量=数据库数据总量/(2*系统内核数量)。
进一步地,所述步骤S120,包括:
根据所述内核数量对所述数据库数据总量进行数据分块,获得目标任务块数据量与剩余数据量;
在所述目标任务块数据量大于预设数据量时,根据所述目标任务块数据量确定目标线程数据量;
将所述剩余数据量记为数据库数据总量,并返回所述根据所述内核数量对所述数据库数据总量进行数据分块,获得目标任务块数据量与剩余数据量的步骤。
值得说明的是,预设数据量可以是由用户设置的每一个任务块的数据量下限值,因为在进行任务分块的时候,通过任务块数据的分块规则,存储的数据是无法分块完成的,因此可以设定一个数据量值,以限定每个任务块的大小区间。
易于理解的是,目标任务块数据量是指将数据库中的总任务量进行分块后给第一个任务块分配的任务量,剩余数据量是指将目标任务块数据量从数据库数据数据总量中分出来后剩余的数据量,且目标任务块数据量与剩余数据量的和就是数据库数据总量,例如:数据库数据总量为800,预设数据量为80,2个CPU的前提下,在进行第一次任务分块后,第一个任务块对应的数据量应该为[800/(2*2)]=200,即目标任务块数据量的数量应为200,剩余数据量为600。
此外,由于目标任务块数据量大于预设数据量,就可以将目标任务块数据量记为目标线程数据量为200,并对应存储,以便于后续与其他的线程进行组合生成线程池,且在第一任务分块完成后,在将剩余的数据量600,记为数据总量,再次进行数据分块操作。
在实际操作过程中,将数据总量800进行任务分块之后获得的第一个任务块数据量为200,第二个任务块数据量为[600/(2*2)]=150,剩余数据量为450;第三个任务块数据量为[450/(2*2)]=113剩余数据量为337;第四个任务块数据量为[337/(2*2)]=85,剩余数据量为252,此时,第五个任务块的数据量应该为[252/(2*2)]=63,但是由于第五个任务块的数据量小于预设数据量,会使得系统内核的性能没有充分利用,并且在剩余的数据量中,还存有较多的数据,因此,可以将第五个任务块的数据量提高为预设数据量80,那么剩余的数据量就应该为172。
进一步地,根据所述内核数量对所述数据库数据总量进行数据分块,获得目标任务块数据量与剩余数据量的步骤之后,还包括:
在所述目标任务块数据量不大于预设数据量时,将所述数据库数据总量与所述预设数据量进行对比;
在所述数据库数据总量大于所述预设数据量时,根据所述预设数据量确定目标线程数据量;
根据所述目标线程数据量与数据库数据总量更新剩余数据量,并将所述剩余数据量记为数据库数据总量;
返回所述根据所述内核数量对所述数据库数据总量进行数据分块,获得目标任务块数据量与剩余数据量的步骤。
值得说明的是,在上述的第五个任务块中,通过数据分配规则分配的第五个任务块数据量应该为63,但是由于第五个任务块数据量小于预设数据量,使得系统内核的性能没有充分利用,并且在剩余的数据量中,还存有较多的数据,因此,可以将第五个任务块的数据量提高为预设数据量80,那么剩余的数据量就应该为172,对应的第六个任务数据量应该为[172/(2*2)]=43,但是第六个任务块的数据量小于预设数据量,可以将第六个任务量数据量为80,剩余数据量为92,同时,第七个任务块的数据量为80,剩余数据量12,此时,由于剩余的数据量不足以提供最后的任务块预设数据量,可以将剩余的数据量全部作为第八个任务块的数据量。
进一步地,将所述数据库数据总量与所述预设数据量进行对比步骤之后,还包括:
在所述数据库数据总量不大于所述预设数据量时,根据所述数据库数据总量确定目标线程数据量。
步骤S130:根据所述目标线程数据量生成数据库线程池。
在具体实现中,将上述分出来的各个任务块数据量作为线程数据量,以生成数据库线程池,例如:将数据库中存储的数据总量分为八个任务块,对应的任务块数据量为:第一个任务:200;第二个任务:150;第三个任务:113;第四个任务:85;第五个任务:80;第六个任务:80;第八个任务:12,将这八个任务块对应的数据量作为线程数据量,以生成数据库线程池。
本实施例公开了获取数据库数据总量与内核数量;根据所述内核数量对所述数据库数据总量进行数据分块,获得目标线程数据量;根据所述目标线程数据量生成数据库线程池,本实施例通过对数据库中的数据进行数据分块,以提高数据索引的效率,并且还可以提高系统内核的性能利用率。
参考图4,图4为本发明一种数据索引方法第三实施例的流程示意图。
基于上述第一实施例,在本实施例中,所述步骤S30之后,还包括:
步骤S40:在接收到扩容指令时,根据所述扩容指令在数据库中生成新增分片。
需要说明的是,扩容指令是指用户根据需要对数据库进行扩容,以增加数据库存储数据总量的指令信息,其中,扩容指令是用户通过客户端或者控制设备输入的扩容指令,在数据库处于性能或者数据容量瓶颈时,可能需要进行扩容,在本实施例中,扩容方式分为新增分片和对现有分片进行扩容的两种方式,扩容过程对业务完全透明,无需业务停机。扩容时仅部分分片存在秒级的只读或者中断,整个集群不会受影响。
值得说明的是,新增分片是指在以新增分片进行扩容时,在原有的数据库分片基础上增加的分片。
此外,若是需要新增数据库或者复制数据库中的数据,常规的数据复制方案会导致复制的数据不一致或者在进行数据复制时,由于主数据库与备用数据库连接终端或者备用数据库有问题,导致主库被锁,无法进行操作,本实施中,参考图5,本实施例提出了一种异步多线程强同步的数据复制方案,其中,该数据复制方案通过一致性的同步复制,保证节点间数据强一致性;对业务层面完全透明,业务层面无需做读写分离或同步强化工作;将串行同步线程异步化,引入线程池能力,大幅度提高性能支持集群架构;支持自动成员控制,故障节点自动从集群中移除;支持自动节点加入,无需人工干预;每个节点都包含完整的数据副本,可以随时切换;无需共享存储设备。
步骤S50:根据所述扩容指令确定待迁移数据。
应当理解的是,待迁移数据是指需要进行转移的数据,参考图6,在分片A处于容量瓶颈时,可以将分片A中的部分数据进行迁移,以使分片A中的待迁移数据在新增分片B中进行存储。
步骤S60:将所述待迁移数据添加至所述新增分片中进行存储,并将所述待迁移数据从原分片节点中移除。
在具体实现中,由于迁移数据的目的是为了减少原分片节点的存储压力,留出一定的空余存储空间,因此在将待迁移数据添加至新增分片之后,可以将原分片节点中的待迁移数据进行移除,以增加原分片节点的存储性能。
步骤S70:将所述原分片节点中的节点数据与所述新增分片节点中的节点数据与备用数据库进行校验。
可以理解的是,在数据迁移结束后,原分片节点中的节点数据与新增分片节点中的节点数据的总和就是在数据迁移之前源分片节点中的节点数据,通过将原分片节点中的节点数据与新增分片节点中的节点数据与备用数据库进行校验,以判断是否存在数据迁移异常。
步骤S80:在校验通过时,生成路由切换信息,并将所述路由切换信息传输至代理端,以使所述代理端根据所述路由切换信息进行路由切换。
值得说明的是,在将原分片节点中的节点数据与新增分片节点中的节点数据与备用数据库进行校验,判定数据迁移没有数据异常之后,还需要对新增节点进行路由地址的分配,例如:原路由地址中只有分片A对应的路由地址00.00.00.11,现在由于新增加了一个分片,为了在进行数据处理或者数据查询时,能够查询或者处理新增分片中的数据,就可以给新增分片B分配一个对应的路由地址00.00.00.22,以使用户可以根据分配路由地址进行调用该新增分片存储的数据。
本实施例公开了在接收到扩容指令时,根据所述扩容指令在数据库中生成新增分片;根据所述扩容指令确定待迁移数据;将所述待迁移数据添加至所述新增分片中进行存储,并将所述待迁移数据从原分片节点中移除;将所述原分片节点中的节点数据与所述新增分片节点中的节点数据与备用数据库进行校验;在校验通过时,生成路由切换信息,并将所述路由切换信息传输至代理端,以使所述代理端根据所述路由切换信息进行路由切换;本实施例通过根据用户的扩容需要进行数据复制,以增加数据库的存储性能,并通过将复制的数据进行备用数据的校验以加强数据库数据复制时的完整性。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有数据索引程序,所述数据索引程序被处理器执行时实现如上文所述的数据索引方法的步骤。
由于本存储介质采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
参照图7,图7为本发明数据索引装置第一实施例的结构框图。
如图7所示,本发明实施例提出的数据索引装置包括:信息生成模块10、数据查找模块20以及数据显示模块30;
信息生成模块10,用于在接收到数据索引指令时,根据所述数据索引指令通过目标逻辑表生成索引信息;
数据查找模块20,用于基于所述索引信息在数据库线程池中查找对应的目标数据;
数据显示模块30,用于将所述目标数据发送至客户端进行显示。
本实施例公开了在接收到目标客户端的数据索引指令时,根据所述数据索引指令生成索引信息;基于所述索引信息在数据库线程池的多个数据分块中并行查找对应的目标数据;将所述目标数据发送至所述目标客户端进行显示;本实施例通过将索引信息在数据库线程池中的多个数据分块并行查找索引信息对应的目标数据,减少索引时间,通过同时对多个线程池进行数据索引,避免了在分布式数据库中进行数据索引时,效率较低的技术问题,提高了系统的索引效率。
在一实施例中,所述数据查找模块20,还用于获取数据库数据总量与内核数量;根据所述内核数量对所述数据库数据总量进行数据分块,获得目标线程数据量;根据所述目标线程数据量生成数据库线程池。
在一实施例中,所述数据查找模块20,还用于根据所述内核数量对所述数据库数据总量进行数据分块,获得目标任务块数据量与剩余数据量;在所述目标任务块数据量大于预设数据量时,根据所述目标任务块数据量确定目标线程数据量;将所述剩余数据量记为数据库数据总量,并返回所述根据所述内核数量对所述数据库数据总量进行数据分块,获得目标任务块数据量与剩余数据量的步骤。
在一实施例中,所述数据查找模块20,还用于在所述目标任务块数据量不大于预设数据量时,将所述数据库数据总量与所述预设数据量进行对比;在所述数据库数据总量大于所述预设数据量时,根据所述预设数据量确定目标线程数据量;根据所述目标线程数据量与数据库数据总量更新剩余数据量,并将所述剩余数据量记为数据库数据总量;返回所述根据所述内核数量对所述数据库数据总量进行数据分块,获得目标任务块数据量与剩余数据量的步骤。
在一实施例中,所述数据查找模块20,还用于在所述数据库数据总量不大于所述预设数据量时,根据所述数据库数据总量确定目标线程数据量。
在一实施例中,所述信息生成模块10,还用于根据所述数据索引指令确定目标通信从机,并获取所述目标通信从机的负载参数;在所述目标通信从机的负载参数小于预设负载阈值时,根据所述数据索引指令通过目标逻辑表生成索引信息。
在一实施例中,所述数据显示模块30,还用于在接收到扩容指令时,根据所述扩容指令在数据库中生成新增分片;根据所述扩容指令确定待迁移数据;将所述待迁移数据添加至所述新增分片中进行存储,并将所述待迁移数据从原分片节点中移除;将所述原分片节点中的节点数据与所述新增分片节点中的节点数据与备用数据库进行校验;在校验通过时,生成路由切换信息,并将所述路由切换信息传输至代理端,以使所述代理端根据所述路由切换信息进行路由切换。
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的数据索引方法,此处不再赘述。
此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read Only Memory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据索引方法,其特征在于,所述数据索引方法包括:
在接收到目标客户端的数据索引指令时,根据所述数据索引指令生成索引信息;
基于所述索引信息在数据库线程池的多个数据分块中并行查找对应的目标数据;
将所述目标数据发送至所述目标客户端进行显示。
2.如权利要求1所述的数据索引方法,其特征在于,所述基于所述索引信息在数据库线程池的多个数据分块中并行查找对应的目标数据之前,还包括:
获取数据库数据总量与内核数量;
根据所述内核数量对所述数据库数据总量进行数据分块,获得目标线程数据量;
根据所述目标线程数据量生成数据库线程池。
3.如权利要求2所述的数据索引方法,其特征在于,所述根据所述内核数量对所述数据库数据总量进行数据分块,获得目标线程数据量,包括:
根据所述内核数量对所述数据库数据总量进行数据分块,获得目标任务块数据量与剩余数据量;
在所述目标任务块数据量大于预设数据量时,根据所述目标任务块数据量确定目标线程数据量;
将所述剩余数据量记为数据库数据总量,并返回所述根据所述内核数量对所述数据库数据总量进行数据分块,获得目标任务块数据量与剩余数据量的步骤。
4.如权利要求3所述的数据索引方法,其特征在于,所述根据所述内核数量对所述数据库数据总量进行数据分块,获得目标任务块数据量与剩余数据量之后,还包括:
在所述目标任务块数据量不大于预设数据量时,将所述数据库数据总量与所述预设数据量进行对比;
在所述数据库数据总量大于所述预设数据量时,根据所述预设数据量确定目标线程数据量;
根据所述目标线程数据量与数据库数据总量更新剩余数据量,并将所述剩余数据量记为数据库数据总量;
返回所述根据所述内核数量对所述数据库数据总量进行数据分块,获得目标任务块数据量与剩余数据量的步骤。
5.如权利要求4所述的数据索引方法,其特征在于,所述将所述数据库数据总量与所述预设数据量进行对比之后,还包括:
在所述数据库数据总量不大于所述预设数据量时,根据所述数据库数据总量确定目标线程数据量。
6.如权利要求1-5任一项所述的数据索引方法,其特征在于,所述根据所述数据索引指令生成索引信息,包括:
根据所述数据索引指令确定目标通信从机,并获取所述目标通信从机的负载参数;
在所述目标通信从机的负载参数小于预设负载阈值时,根据所述数据索引指令通过目标逻辑表生成索引信息。
7.如权利要求1-5任一项所述的数据索引方法,其特征在于,所述将所述目标数据发送至客户端进行显示之后,还包括:
在接收到扩容指令时,根据所述扩容指令在数据库中生成新增分片;
根据所述扩容指令确定待迁移数据;
将所述待迁移数据添加至所述新增分片中进行存储,并将所述待迁移数据从原分片节点中移除;
将所述原分片节点中的节点数据与所述新增分片节点中的节点数据与备用数据库进行校验;
在校验通过时,生成路由切换信息,并将所述路由切换信息传输至代理端,以使所述代理端根据所述路由切换信息进行路由切换。
8.一种数据索引装置,其特征在于,所述数据索引装置包括:信息生成模块、数据查找模块以及数据显示模块;
所述信息生成模块,用于在接收到数据索引指令时,根据所述数据索引指令通过目标逻辑表生成索引信息;
所述数据查找模块,用于基于所述索引信息在数据库线程池中查找对应的目标数据;
所述数据显示模块,用于将所述目标数据发送至客户端进行显示。
9.一种数据索引设备,其特征在于,所述数据索引设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据索引程序,所述数据索引程序配置为实现如权利要求1至7中任一项所述的数据索引方法。
10.一种存储介质,其特征在于,所述存储介质上存储有数据索引程序,所述数据索引程序被处理器执行时实现如权利要求1至7任一项所述的数据索引方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111680734.5A CN114328611A (zh) | 2021-12-29 | 2021-12-29 | 数据索引方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111680734.5A CN114328611A (zh) | 2021-12-29 | 2021-12-29 | 数据索引方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114328611A true CN114328611A (zh) | 2022-04-12 |
Family
ID=81023226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111680734.5A Pending CN114328611A (zh) | 2021-12-29 | 2021-12-29 | 数据索引方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114328611A (zh) |
-
2021
- 2021-12-29 CN CN202111680734.5A patent/CN114328611A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9952783B2 (en) | Data processing method and apparatus, and shared storage device | |
EP3564835B1 (en) | Data redistribution method and apparatus, and database cluster | |
US10599677B2 (en) | Methods and systems of splitting database indexes and digests | |
KR101663215B1 (ko) | 데이터 저장 방법 및 장치 | |
US20100169289A1 (en) | Two Phase Commit With Grid Elements | |
CN102955845A (zh) | 数据访问方法、装置与分布式数据库系统 | |
US20120330890A1 (en) | Propagating tables while preserving cyclic foreign key relationships | |
WO2017050064A1 (zh) | 共享内存数据库的内存管理方法及装置 | |
JP6211631B2 (ja) | ボリューム複製を目的としたワークロードの特定およびバッファのサイズ設定 | |
CN106796588B (zh) | 索引表的更新方法和设备 | |
US11151157B2 (en) | Database management method | |
CN110532243A (zh) | 数据处理方法、装置和电子设备 | |
JP2015528957A (ja) | 分散ファイルシステム、ファイルアクセス方法及びクライアントデバイス | |
CN115470303B (zh) | 一种数据库访问方法、装置、系统、设备及可读存储介质 | |
CN114328611A (zh) | 数据索引方法、装置、设备及存储介质 | |
CN113391757B (zh) | 一种节点扩展方法、装置及迁入节点 | |
CN115017164A (zh) | 索引构建方法、索引构建系统及索引更新方法 | |
CN111782634B (zh) | 数据分布式存储方法、装置、电子设备及存储介质 | |
EP3995972A1 (en) | Metadata processing method and apparatus, and computer-readable storage medium | |
CN115729693A (zh) | 数据处理方法、装置、计算机设备及计算机可读存储介质 | |
CN113760858A (zh) | 内存库数据动态迁移方法、装置、计算设备及存储设备 | |
CN109542631A (zh) | 一种备机的重演方法、装置、服务器及存储介质 | |
JP6202026B2 (ja) | データ管理装置、データ管理方法およびデータ管理プログラム | |
CN114546580A (zh) | 缓存部署系统、缓存部署方法、电子设备及存储介质 | |
CN116521651A (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 |