一种数据存储方法、装置、存储介质及电子设备制造方法及图纸

技术编号:37549319 阅读:14 留言:0更新日期:2023-05-12 16:27
本说明书公开了一种数据存储方法、装置、存储介质及电子设备,当数据库处于高并发状态时,服务器不仅可以通过先创建缓冲数组,并将数据存储指令对应的待存储数据存储到缓冲数组中,从而可以等到数据库未处于高并发状态时,再慢慢地将缓冲数组中的数据融合到节点数组中的方式,来避免进程阻塞。来避免进程阻塞。来避免进程阻塞。

【技术实现步骤摘要】
一种数据存储方法、装置、存储介质及电子设备


[0001]本说明书涉及计算机
,尤其涉及一种数据存储方法、装置、存储介质及电子设备。

技术介绍

[0002]随着数据库中需要存储的数据量不断地增加,数据库所使用的传统的索引由于其所具有占用内容高、每次查询需要多次间接搜索等问题,限制了对数据库性能的进一步地提高。而将人工智能技术与数据库技术结合产生的学习型索引技术,由于其具有更好的查找性能以及索引占用存储空间更低的优点,受到了广泛的关注。
[0003]目前的学习型索引是通过模型根据用户输入的需要存储的待存储数据,来预测出待存储数据的存储位置,进而可以加快数据的存储效率。但是,当数据库处于高并发状态下时,多个数据存储指令并发执行,其中,针对每个数据存储指令,需要通过学习型索引模型预测出该数据存储指令对应的待存储数据所要存储的节点数组(即从一个数据表存储的全部数据中划分出的子数据集),并通过这个节点数组对应的子模型预测出该数据存储指令对应的待存储数据在这个节点数组中的存储位置,并将该数据存储指令对应的待存储数据存储到预测出的存储位置中。
[0004]而若一个数据存储指令需要将大量新数据写入数据库时,会导致对应的节点数组中的数据频繁变化,并导致该节点数组的容量达到上限,从而使得需要对该节点数组进行扩容、分裂,并需要对该节点数组对应的子模型进行重训练等调整,而对该节点数组进行的调整操作,会使得暂时无法将数据写入该节点数组,因此,会导致进程的阻塞,进而会影响到其他数据存储指令的执行,最终影响数据库性能。
>
技术实现思路

[0005]本说明书提供一种数据存储方法、装置、存储介质及电子设备,以解决现有技术存在的进程阻塞的问题。
[0006]本说明书采用下述技术方案:本说明书提供了一种数据存储方法,包括:接收数据存储指令;通过预设的学习型索引模型,预测存储所述数据存储指令对应的待存储数据的节点数组,作为第一数组;判断所述第一数组中的存储空间的占用率是否超过设定占用率;若是,则开始创建用于替换所述第一数组的第二数组,并在等待创建完所述第二数组的过程中,创建缓冲数组以及数据指针数组,将所述待存储数据存储到所述缓冲数组中,并按照假定将所述待存储数据存储在所述第一数组时所述第一数组中存储的各数据在存储位置上的先后顺序,将已存储在所述第一数组中的数据对应的指针和所述待存储数据在所述缓冲数组中对应的指针,存储到所述数据指针数组中;
在创建完所述第二数组后,按照所述数据指针数组中存储的各指针对应的先后顺序,将所述缓冲数组中的各数据与已存储在所述第一数组中的数据存储到所述第二数组中。
[0007]可选地,按照各数据存储的先后顺序,将已存储在所述第一数组中的数据对应的指针和所述待存储数据在所述缓冲数组中对应的指针,存储到所述数据指针数组中,具体包括:通过所述学习型索引模型,预测出将所述待存储数据存储到所述第一数组中的存储位置,作为目标位置;根据所述目标位置,确定所述待存储数据与所述第一数组中已经存储的各数据在存储位置上的先后顺序;按照所述先后顺序,将已存储在所述第一数组中的数据对应的指针和所述待存储数据在所述缓冲数组中对应的指针,存储到所述数据指针数组中。
[0008]可选地,开始创建用于替换所述第一数组的第二数组,并在等待创建完所述第二数组的过程中,创建缓冲数组以及数据指针数组,将所述待存储数据存储到所述缓冲数组中,并按照假定将所述待存储数据存储在所述第一数组时所述第一数组中存储的各数据在存储位置上的先后顺序,将已存储在所述第一数组中的数据对应的指针和所述待存储数据在所述缓冲数组中对应的指针,存储到所述数据指针数组中,具体包括:在开始创建用于替换所述第一数组的第二数组后,判断用于执行创建所述第二数组的进程是否处于空闲状态;若否,在等待所述进程的状态变为空闲状态的过程中,创建缓冲数组以及数据指针数组,将所述待存储数据存储到所述缓冲数组中,并按照假定将所述待存储数据存储在所述第一数组时所述第一数组中存储的各数据在存储位置上的先后顺序,将已存储在所述第一数组中的数据对应的指针和所述待存储数据在所述缓冲数组中对应的指针,存储到所述数据指针数组中。
[0009]可选地,所述方法还包括:在所述进程的状态变为空闲状态后,通过所述进程,创建所述第二数组。
[0010]可选地,所述方法还包括:若所述第一数组中的存储空间的占用率未超过设定占用率,则通过所述学习型索引模型,判断预测出的所述待存储数据在所述第一数组中的存储位置是否为空位;若是,则将所述待存储数据存储到所述第一数组的所述存储位置中。
[0011]可选地,所述方法还包括:若确定预测出的所述待存储数据在所述第一数组中的存储位置不为空位,则通过将所述第一数组中在预测出的存储位置的数据以及在预测出的存储位置之后的各数据依次后移,以将预测出的存储位置调整为空位,并将所述待存储数据存储到预测出的存储位置中。
[0012]可选地,所述第二数组是通过对所述第一数组进行扩容、对所述第一数组进行分裂得到的。
[0013]本说明书提供了一种数据存储装置,包括:接收模块,用于接收数据存储指令;
预测模块,用于通过预设的学习型索引模型,预测存储所述数据存储指令对应的待存储数据的节点数组,作为第一数组;确定模块,用于判断所述第一数组中的存储空间的占用率是否超过设定占用率;第一存储模块,用于若是,则开始创建用于替换所述第一数组的第二数组,并在等待创建完所述第二数组的过程中,创建缓冲数组以及数据指针数组,将所述待存储数据存储到所述缓冲数组中,并按照假定将所述待存储数据存储在所述第一数组时所述第一数组中存储的各数据在存储位置上的先后顺序,将已存储在所述第一数组中的数据对应的指针和所述待存储数据在所述缓冲数组中对应的指针,存储到所述数据指针数组中;第二存储模块,用于在创建完所述第二数组后,按照所述数据指针数组中存储的各指针对应的先后顺序,将所述缓冲数组中的各数据与已存储在所述第一数组中的数据存储到所述第二数组中。
[0014]可选地,所述第一存储模块具体用于,通过所述学习型索引模型,预测出将所述待存储数据存储到所述第一数组中的存储位置,作为目标位置;根据所述目标位置,确定所述待存储数据与所述第一数组中已经存储的各数据在存储位置上的先后顺序;按照所述先后顺序,将已存储在所述第一数组中的数据对应的指针和所述待存储数据在所述缓冲数组中对应的指针,存储到所述数据指针数组中。
[0015]可选地,所述第一存储模块具体用于,在开始创建用于替换所述第一数组的第二数组后,判断用于执行创建所述第二数组的进程是否处于空闲状态;若否,在等待所述进程的状态变为空闲状态的过程中,创建缓冲数组以及数据指针数组,将所述待存储数据存储到所述缓冲数组中,并按照假定将所述待存储数据存储在所述第一数组时所述第一数组中存储的各数据在存储位置上的先后顺序,将已存储在所述第一数组中的数据对应的指针和所述待存储数据在所述缓冲数组中对应的指针,存储到所述数据指针数组中。
[0016]可选地本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种数据存储方法,包括:接收数据存储指令;通过预设的学习型索引模型,预测存储所述数据存储指令对应的待存储数据的节点数组,作为第一数组;判断所述第一数组中的存储空间的占用率是否超过设定占用率;若是,则开始创建用于替换所述第一数组的第二数组,并在等待创建完所述第二数组的过程中,创建缓冲数组以及数据指针数组,将所述待存储数据存储到所述缓冲数组中,并按照假定将所述待存储数据存储在所述第一数组时所述第一数组中存储的各数据在存储位置上的先后顺序,将已存储在所述第一数组中的数据对应的指针和所述待存储数据在所述缓冲数组中对应的指针,存储到所述数据指针数组中;在创建完所述第二数组后,按照所述数据指针数组中存储的各指针对应的先后顺序,将所述缓冲数组中的各数据与已存储在所述第一数组中的数据存储到所述第二数组中。2.如权利要求1所述的方法,按照各数据存储的先后顺序,将已存储在所述第一数组中的数据对应的指针和所述待存储数据在所述缓冲数组中对应的指针,存储到所述数据指针数组中,具体包括:通过所述学习型索引模型,预测出将所述待存储数据存储到所述第一数组中的存储位置,作为目标位置;根据所述目标位置,确定所述待存储数据与所述第一数组中已经存储的各数据在存储位置上的先后顺序;按照所述先后顺序,将已存储在所述第一数组中的数据对应的指针和所述待存储数据在所述缓冲数组中对应的指针,存储到所述数据指针数组中。3.如权利要求1所述的方法,开始创建用于替换所述第一数组的第二数组,并在等待创建完所述第二数组的过程中,创建缓冲数组以及数据指针数组,将所述待存储数据存储到所述缓冲数组中,并按照假定将所述待存储数据存储在所述第一数组时所述第一数组中存储的各数据在存储位置上的先后顺序,将已存储在所述第一数组中的数据对应的指针和所述待存储数据在所述缓冲数组中对应的指针,存储到所述数据指针数组中,具体包括:在开始创建用于替换所述第一数组的第二数组后,判断用于执行创建所述第二数组的进程是否处于空闲状态;若否,在等待所述进程的状态变为空闲状态的过程中,创建缓冲数组以及数据指针数组,将所述待存储数据存储到所述缓冲数组中,并按照假定将所述待存储数据存储在所述第一数组时所述第一数组中存储的各数据在存储位置上的先后顺序,将已存储在所述第一数组中的数据对应的指针和所述待存储数据在所述缓冲数组中对应的指针,存储到所述数据指针数组中。4.如权利要求3所述的方法,所述方法还包括:在所述进程的状态变为空闲状态后,通过所述进程,创建所述第二数组。5.如权利要求1所述的方法,所述方法还包括:若所述第一数组中的存储空间的占用率未超过设定占用率,则通过所述学习型索引模型,判断预测出的所述待存储数据在所述第一数组中的存储位置是否为空位;若是,则将所述待存储数据存储到所述第一数组的所述存储位置中。
6.如权利要求5所述的方法,所述方法还包括:若确定预测出的所述待存储数据在所述第一数组中的存储位置不为空位,则通过将所述第一数组中在预测出的存储位置的数据以及在预测出的存储位置之后的各数据依次后移,以将预测出的存储位置调整为空位,并将所述待存储数据存储到预测出的存储位置中。7.如权利要求1~6任一项所述的方法,所述第二数组是通过对所述第一数组进行扩容、对所述第一...

【专利技术属性】
技术研发人员:徐泉清
申请(专利权)人:北京奥星贝斯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1