CN117290353A - 数据存储方法、读取方法、数据库系统、设备及介质 - Google Patents
数据存储方法、读取方法、数据库系统、设备及介质 Download PDFInfo
- Publication number
- CN117290353A CN117290353A CN202210699463.6A CN202210699463A CN117290353A CN 117290353 A CN117290353 A CN 117290353A CN 202210699463 A CN202210699463 A CN 202210699463A CN 117290353 A CN117290353 A CN 117290353A
- Authority
- CN
- China
- Prior art keywords
- index
- index information
- information
- target
- merging
- 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
- 238000000034 method Methods 0.000 title claims abstract description 90
- 238000013500 data storage Methods 0.000 title claims abstract description 45
- 230000011218 segmentation Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 238000003780 insertion Methods 0.000 abstract description 9
- 230000037431 insertion Effects 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000005315 distribution function Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/22—Indexing; Data structures therefor; Storage structures
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了数据存储方法、读取方法、数据库系统、设备及介质,其中数据存储方法包括获取索引信息;将索引信息写入内存和磁盘,磁盘将索引信息按照写入时间的先后顺序分层地存储;当内存或存储层的索引信息的数量超过阈值,将当前存储层的索引信息和下一存储层的索引信息进行合并,得到合并索引信息,同步建立与合并索引信息对应的学习索引模型,将合并索引信息替换下一存储层的索引信息;通过对索引数据按照数据冷热程度有序分层存储,以及在合并索引数据的同时建立学习索引模型的手段,有效解决了采用学习索引的数据库系统要求索引信息有序和对索引信息插入不友好的问题。
Description
技术领域
本申请实施例涉及但不限于数据存储领域,尤其涉及数据存储方法、读取方法、数据库系统、设备及介质。
背景技术
目前的数据库系统采用磁盘对存储数据进行持久化存储。随着人工智能技术的成熟,通过学习索引技术将机器学习应用到数据库系统索引的构建中,能减少磁盘I/O访问次数,利于快速地在磁盘中找到存储数据。但目前的学习索引存在局限性:一方面是在进行模型训练时需要对象是有序的;另一方面是模型是基于现有索引信息分布规律进行训练的,对新插入的索引信息不适用,需要对索引信息进行重新训练学习,因此对索引信息的插入并不友好。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本申请实施例提供了数据存储方法、读取方法、数据库系统、设备及介质,能够解决采用学习索引的数据库系统要求索引信息有序和对索引信息插入不友好的问题。
第一方面,本申请实施例提供了一种数据存储方法,应用于数据库系统,所述数据库系统包括内存和磁盘,所述磁盘包括索引存储区,所述索引存储区存储有索引信息,所述索引存储区包括至少两个存储层,所述索引存储区中的所述索引信息按照写入时间的先后顺序分层地存储;所述数据存储方法包括:当将存储数据写入所述磁盘,获取与存储数据对应的索引信息;将所述索引信息写入所述内存和第一存储层,所述第一存储层为存储有写入时间最早的所述索引信息的存储层;在所述内存中的索引信息的数量超过第一信息量阈值的情况下,将所述内存中的所述索引信息和所述第一存储层中的所述索引信息进行合并,得到第一合并索引信息,在合并过程中同步建立与所述第一合并索引信息对应的学习索引模型,将所述第一合并索引信息替换所述第一存储层中的所述索引信息;在当前存储层的索引信息的数量超过第二信息量阈值的情况下,将所述当前存储层中的所述索引信息和下一存储层中的所述索引信息进行合并,得到第二合并索引信息,在合并过程中同步建立与所述第二合并索引信息对应的学习索引模型,将所述第二合并索引信息替换所述下一存储层中的所述索引信息。
第二方面,本申请实施例还提供了一种数据读取方法,应用于数据库系统,所述数据库系统包括内存和磁盘,所述磁盘包括索引存储区,所述内存和所述索引存储区存储有索引信息,所述索引信息包括所述存储数据的关键字信息和所述存储数据的位置信息,所述索引存储区包括至少两个存储层,所述索引存储区中的所述索引信息按照写入时间的先后顺序分层地存储;所述数据库按照如上所述的数据存储方法对存储数据进行存储;所述数据读取方法包括:获取目标关键字信息,所述目标关键字信息为待读取的存储数据的关键字信息;当所述内存存在与所述目标关键字信息对应的索引信息,根据所述内存中的与所述目标关键字信息对应的索引信息得到目标位置信息,或者当所述索引存储区存在与所述目标关键字信息对应的索引信息,通过学习索引模型根据所述索引存储区中的与所述目标关键字信息对应的索引信息得到目标位置信息,所述目标位置信息为待读取的存储数据的位置信息;根据所述目标位置信息,从所述磁盘读取所述存储数据。
第三方面,本申请实施例还提供了一种数据库系统,包括内存和磁盘,所述磁盘包括索引存储区,所述索引存储区存储有索引信息,所述索引存储区包括至少两个存储层,所述索引存储区中的所述索引信息按照写入时间的先后顺序分层地存储;所述数据库按照如上所述的数据存储方法对存储数据进行存储;所述数据库按照如上所述的数据读取方法对存储数据进行读取。
第四方面,本申请实施例还提供了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的数据存储方法或者数据读取方法。
第五方面,本申请实施例还提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行如上所述的数据存储方法或者数据读取方法。
本申请实施例包括:当将存储数据写入磁盘,获取与存储数据对应的索引信息;将所述索引信息写入所述内存和磁盘,磁盘将索引信息按照写入时间的先后顺序分层地存储;在内存中的索引信息的数量超过第一信息量阈值的情况下,将内存中的索引信息和磁盘的索引存储区的第一存储层中的索引信息进行合并,得到第一合并索引信息,在合并过程中同步建立与第一合并索引信息对应的学习索引模型,将第一合并索引信息替换第一存储层中的索引信息;在当前存储层的索引信息的数量超过第二信息量阈值的情况下,将当前存储层中的索引信息和下一存储层中的索引信息进行合并,得到第二合并索引信息,在合并过程中同步建立与第二合并索引信息对应的学习索引模型,将第二合并索引信息替换下一存储层中的索引信息;通过对索引数据按照数据冷热程度有序分层存储,以及在合并索引数据的同时建立学习索引模型的手段,有效解决了采用学习索引的数据库系统要求索引信息有序和对索引信息插入不友好的问题。
附图说明
附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1是本申请实施例所提供的数据库系统的结构图;
图2是本申请实施例所提供的数据存储方法的步骤图;
图3是将内存中的索引信息和第一存储层中的索引信息合并和建立学习索引模型的具体步骤图;
图4是将第一存储层中的索引信息和第二存储层中的索引信息合并和建立学习索引模型的具体步骤图;
图5是将当前第二存储层中的索引信息和下一第二存储层中的索引信息合并和建立学习索引模型的具体步骤图;
图6是本申请实施例所提供的数据读取方法的步骤图;
图7是通过学习索引模型根据索引信息得到目标位置信息的具体步骤图;
图8是本申请实施例所提供的电子设备的结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书、权利要求书或上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请提供了数据存储方法、读取方法、数据库系统、设备及介质,其中数据存储方法包括当将存储数据写入磁盘,获取与存储数据对应的索引信息;将所述索引信息写入所述内存和磁盘,磁盘将索引信息按照写入时间的先后顺序分层地存储;在内存中的索引信息的数量超过第一信息量阈值的情况下,将内存中的索引信息和磁盘的索引存储区的第一存储层中的索引信息进行合并,得到第一合并索引信息,在合并过程中同步建立与第一合并索引信息对应的学习索引模型,将第一合并索引信息替换第一存储层中的索引信息;在当前存储层的索引信息的数量超过第二信息量阈值的情况下,将当前存储层中的索引信息和下一存储层中的索引信息进行合并,得到第二合并索引信息,在合并过程中同步建立与第二合并索引信息对应的学习索引模型,将第二合并索引信息替换下一存储层中的索引信息;通过对索引数据按照数据冷热程度有序分层存储,以及在合并索引数据的同时建立学习索引模型的手段,有效解决了采用学习索引的数据库系统要求索引信息有序和对索引信息插入不友好的问题。
下面结合附图,对本申请实施例作进一步阐述。
数据库系统是一个按数据结构来存储和管理数据的计算机软件系统,是有组织的、可共享的、统一管理的大量数据的集合。参照图1,图1是数据库系统的结构图。本申请实施例提供的数据库系统包括包括内存100和磁盘200,磁盘200包括索引存储区210和数据存储区220,索引存储区210存储有索引信息300,数据存储区220存储有存储数据400。索引存储区210包括至少两个存储层,具体包括第一存储层211和第二存储层212。索引存储区210中的索引信息300按照写入时间的先后顺序分层分段地存储。内存100中的索引数据按照B树结构或跳表结构进行存储,索引存储区210中的索引数据按照学习索引方式进行存储。
对于学习索引,学习索引基于数据分布规律对索引信息300进行机器学习。为了查找指定的关键字信息,学习索引使用预测关键字信息的位置的累计分布函数(cumulativedistribution function,CDF)来定位关键字信息的位置。即学习索引根据关键字信息的位置分布学习一个映射函数,将关键字信息输入至学习索引模型310,通过映射函数得到关键字信息的位置,学习索引模型310输出关键字信息的位置。
本申请实施例提供了数据存储方法,应用于上述的数据库系统。数据库系统通过该数据存储方法对写入到数据库系统的磁盘200的数据存储区220的存储数据400进行存储。
参照图2,图2是数据存储方法的步骤图。数据存储方法,包括但不限于以下步骤:
步骤S100,当将存储数据写入磁盘,获取与存储数据对应的索引信息;
步骤S200,将索引信息写入内存和第一存储层;
步骤S300,在内存中的索引信息的数量超过第一信息量阈值的情况下,将内存中的索引信息和第一存储层中的索引信息进行合并,得到第一合并索引信息,在合并过程中同步建立与第一合并索引信息对应的学习索引模型,将第一合并索引信息替换第一存储层中的索引信息;
步骤S400,在当前存储层的索引信息的数量超过第二信息量阈值的情况下,将当前存储层中的索引信息和下一存储层中的索引信息进行合并,得到第二合并索引信息,在合并过程中同步建立与第二合并索引信息对应的学习索引模型,将第二合并索引信息替换下一存储层中的索引信息。
对于步骤S100,参照图1,当用户将存储数据400输入至数据库系统,数据库系统将存储数据400写入磁盘200的数据存储区220,并获取与写入的存储数据400对应的索引信息300。具体地,索引信息300通过键值对的形式表示,存储数据400的关键字信息和存储数据400的位置信息形成键值对,即存储数据400的关键字信息为键值对的key,存储数据400的位置信息为键值对的value。例如,将值为26的存储数据400写入到磁盘200的数据存储区220的存储位置4,值为26的存储数据400的关键字信息为26,值为26的存储数据400的位置信息为4,关键字信息和位置信息形成键值对(26,4),即可以得到值为26的存储数据400对应的索引信息300为(26,4)。当然在其他实施例中,索引信息300也可以根据实际需求采用其他方式进行表示,例如哈希表结构。
对于步骤S200,在存储数据400写入磁盘200的数据存储区220的同时,将索引信息300写入内存100和第一存储层211。其中,第一存储层211为存储有写入时间最早的多个索引信息300的存储层。
例如,将键值对(26,4)作为热数据写入到内存100缓冲中,插入到存储索引信息300的B树结构中。同步地,将键值对(26,4)进行持久化操作,将键值对(26,4)写入磁盘200的索引存储区210。索引存储区210的索引信息300按照写入时间的先后顺序有序地分层分段存储。因此,对于刚写入的键值对(26,4),被存储在第一存储层211,且会与其他索引信息300形成数据段。对于插入到内存100的索引信息300无需要求是有序地存储,对索引数据的插入是友好的。
其中,B树是一种自平衡的树,保持键值有序,以顺序遍历;使用层次化的索引来最小化磁盘200读取;使用不完全填充的块来加速插入和删除;通过遍历算法来保持索引平衡。B树结构能够让查找数据、顺序访问、插入数据及删除的动作,都在对数时间内完成。B树通过保证内部节点至少半满来最小化空间浪费。
对于步骤S300,当索引信息300写入到内存100,内存100中已存储有多个索引数据;在内存100中的索引信息300的数量超过第一信息量阈值的情况下,对索引信息300进行数据合并操作。第一信息量阈值可以根据具体实际情况设置;例如,当内存100中的索引信息300的数量超过第一存储层211的容量的十分之一,需要对索引信息300进行数据合并操作。
对于内存100的索引信息300和第一存储层211的索引信息300的合并,需要在合并过程中同步建立学习索引模型310,该学习索引模型310与内存100的索引信息300和第一存储层211的索引信息300合并得到的第一合并索引信息对应。
参照图3,具体地,将内存100中的索引信息300和第一存储层211中的索引信息300进行合并,得到第一合并索引信息,在合并过程中同步建立与第一合并索引信息对应的学习索引模型310,包括但不限于以下步骤:
步骤S310,选择内存,中写入时间最迟的至少一个索引信息,作为第一合并目标;
步骤S320,选择第一存储层中写入时间最早的至少一个索引信息,作为第二合并目标;
步骤S330,从第一存储层将第二合并目标对应的索引信息读取到内存中;
步骤S340,在内存中将第一合并目标对应的索引信息与第二合并目标对应的索引信息进行合并,得到第一索引信息集,将第一索引信息集作为第一合并索引信息,在合并过程中同步建立与第一合并索引信息对应的学习索引模型。
对于步骤S310,在内存100中,索引信息300以B树结构存储,在取用内存100的索引信息300进行合并的时候,对内存100中的所有索引信息300的写入时间进行统计,得到写入时间信息;按照写入时间信息从迟到早对内存100中的所有索引信息300进行排序,选择排名在预设名次之前的索引信息300作为第一索引信息集;或者,按照写入时间信息从早到迟对内存100中的所有索引信息300进行排序,选择排名在预设名次之后的索引信息300作为第一索引信息集;即可以得到内存100中写入时间最迟的至少一个索引信息300,作为第一合并目标。
对于步骤S320,在第一存储层211中,第一存储层211包括至少一个第一数据段,第一数据段包括至少一个索引信息300;选择第一存储层211中写入时间最早的一个数据段,作为第二合并目标。
对于步骤S330,内存100存储有第一数据段的第一分段范围信息,第一分段范围信息以B数结构保存,这便于内存100根据第一分段范围信息快速地对第一数据段进行查找和定位。从第一存储层211将第二合并目标对应的索引信息300读取到内存100中,具体为:根据第一分段范围信息,确定第二合并目标的第一目标分段范围信息,根据第一目标分段范围信息,从第一存储层211将第二合并目标对应的第一数据段读取到内存100中。
对于步骤S340,在内存100中将第一合并目标对应的索引信息300与第二合并目标对应的索引信息300进行合并,得到第一索引信息集,将第一索引信息集作为第一合并索引信息;具体地,由于第一存储层211的索引信息300是分段存储的,将第一存储层211的一段数据段读取到内存100中,即在内存100中将第一合并目标对应的索引信息300与第二合并目标对应的数据段进行合并,得到第一索引信息集。
同步地,在合并过程中建立与第一合并索引信息对应的学习索引模型310。
由于是在内存100的索引信息300的数量超过第一信息量阈值的时候,才需要进行索引信息300的合并和同步建立学习索引模型310,而不是每次写入索引信息300均进行索引信息300的合并和同步建立学习索引模型310,因此对于刚写入的索引信息300,并不需模型对刚写入的索引信息300进行学习,也不需实施对模型更新,因此这对于索引信息300的插入是友好的。
另外,由于每一段数据段包含的索引信息300只是数据库系统很小的一部分,这对于学习索引模型310学习的时间代价是非常小的。并且,合并过程发生在内存100中,学习索引模型310是在索引信息300合并的时候同步进行学习,所以学习索引模型310进行学习的开销很小。这样既能进行快速训练即学习,又能进行推理即查找,空间开销占用很小。
另外,索引信息300既包含了存储信息的关键字信息,也包含了存储信息的位置信息,索引在原始数据乱序的情况下,也能保证学习索引的有效性。
然后,将第一合并索引信息替换第一存储层211中的索引信息300。具体地,将内存100中的第一合并索引信息持久化到磁盘200,将第一存储层211中的索引信息300覆盖。第一存储层211的索引信息300是分段存储的;将第一合并索引信息覆盖第一存储层211中的读取到内存100的原数据段,并根据覆盖后的分段结果,更新内存100的第一分段范围信息。
对于步骤S400,在将第一合并索引信息替换第一存储层211中的索引信息300之后,若第一存储层211的索引信息300的数量超过第二信息量阈值,则需要将第一存储层211的索引信息300与第一存储层211对应的下一第二存储层212的索引信息300进行合并。其中,第一存储层211对应的第二信息量阈值可以根据具体实际情况设置;例如,当第一存储层211中的索引信息300的数量超过第一存储层211对应的下一第二存储层212的容量的十分之一,需要对索引信息300进行数据合并操作。
参照图4,具体地,将第一存储层211的索引信息300与第一存储层211对应的下一第二存储层212的索引信息300进行合并,包括但不限于以下步骤:
步骤S411,选择第一存储层中写入时间最迟的至少一个索引信息,作为第三合并目标;
步骤S412,选择与第一存储层对应的下一第二存储层中写入时间最早的至少一个索引信息,作为第四合并目标;
步骤S413,从第一存储层,将第三合并目标对应的索引信息读取到内存中,并从与第一存储层对应的下一第二存储层,将第四合并目标对应的索引信息读取到内存中;
步骤S414,在内存中将第三合并目标对应的索引信息与第四合并目标对应的索引信息进行合并,得到第二索引信息集,将第二索引信息集作为第二合并索引信息,在合并过程中同步建立与第二合并索引信息对应的学习索引模型。
另外,第二存储层212包括至少一个第二数据段,第二数据段包括至少一个索引信息300;内存100存储有第二数据段的第二分段范围信息。则从第一存储层211,将第三合并目标对应的索引信息300读取到内存100中,并从与第一存储层211对应的下一第二存储层212,将第四合并目标对应的索引信息300读取到内存100中,具体为:根据第一分段范围信息,确定第三合并目标的第二目标分段范围信息,和根据第二分段范围信息,确定第四合并目标的第三目标分段范围信息,根据第二目标分段范围信息,从第一存储层211将第三合并目标对应的第二数据段读取到内存100中,并根据第三目标分段范围信息,从与第一存储层211对应的下一第二存储层212,将第四合并目标对应的第二数据段读取到内存100中。
由于第一存储层211的索引信息300和第二存储层212的索引信息300都是有序的,所以对第一存储层211的索引信息300和第二存储层212的索引信息300的合并速度是很快的。
同样地,对于各个第二存储层212,在将合并后的索引信息300替换第二存储层212中的索引信息300之后,若第二存储层212的索引信息300的数量超过第二信息量阈值,则需要将第二存储层212的索引信息300与该第二存储层212对应的下一第二存储层212的索引信息300进行合并。其中,第二存储层212对应的第二信息量阈值可以根据具体实际情况设置;例如,当第二存储层212中的索引信息300的数量超过第一存储层211对应的下一第二存储层212的容量的十分之一,需要对索引信息300进行数据合并操作。
另外,第二存储层212对应的第二信息量阈值可以设置成与第一存储层211对应的第二信息量阈值不同的数值。各个第二存储层212对应的第二信息量阈值也可以设置成不同的数值。
参照图5,具体地,将其中一层第二存储层212的索引信息300与该第二存储层212对应的下一第二存储层212的索引信息300进行合并,包括但不限于以下步骤:
步骤S421,选择其中一个第二存储层中写入时间最迟的至少一个索引信息,作为第五合并目标;
步骤S422,选择与下一第二存储层中写入时间最早的至少一个索引信息,作为第六合并目标;
步骤S423,从其中一个第二存储层,将第五合并目标对应的索引信息读取到内存中,并从与下一第二存储层,将第六合并目标对应的索引信息读取到内存中;
步骤S424,在内存中将第五合并目标对应的索引信息与第六合并目标对应的索引信息进行合并,得到第三索引信息集,将第三索引信息集作为第二合并索引信息,在合并过程中同步建立与第二合并索引信息对应的学习索引模型。
另外,第二存储层212包括至少一个第二数据段,第二数据段包括至少一个索引信息300;内存100存储有第二数据段的第二分段范围信息。则从其中一个第二存储层212,将第五合并目标对应的索引信息300读取到内存100中,并从与下一第二存储层212,将第六合并目标对应的索引信息300读取到内存100中,具体为:根据第二分段范围信息,确定第五合并目标的第四目标分段范围信息,和第五合并目标的第四目标分段范围信息,根据第四目标分段范围信息,从其中一个第二存储层212,将第五合并目标对应的第二数据段读取到内存100中,并根据第五目标分段范围信息,从下一第二存储层212,将第六合并目标对应的第二数据段读取到内存100中。
由于第二存储层212的索引信息300都是有序的,所以对两个第二存储层212的索引信息300的合并速度是很快的。
在每一次索引信息300合并的时候,都会对分层分段并有序存储的索引信息300进行学习,建立用于查找的学习索引模型310,以便使学习索引模型310能根据关键字信息快速预测出关键字信息的位置。采用分层分段学习,第一存储层211和第二存储层212的索引信息300文件一旦创建,就不会在原地修改,因此学习索引模型310是建立在稳态文件之上的,学习索引模型310不会因为索引信息300的插入而产生变化。
本申请实施例提供了数据读取方法,应用于上述的数据库系统。数据库系统通过该数据读取方法对写入到数据库系统的磁盘200的数据存储区220的存储数据400进行读取。
参照图6,图6是数据读取方法的步骤图。数据读取方法,包括但不限于以下步骤:
步骤S500,获取目标关键字信息;
步骤S600,当内存存在与目标关键字信息对应的索引信息,根据内存中的与目标关键字信息对应的索引信息得到目标位置信息,或者当索引存储区存在与目标关键字信息对应的索引信息,通过学习索引模型根据索引存储区中的与目标关键字信息对应的索引信息得到目标位置信息,目标位置信息为待读取的存储数据的位置信息;
步骤S700,根据目标位置信息,从磁盘读取存储数据。
通过上述数据读取方法,能提高数据读取效率,减小数据读取开销。
对于步骤S500,目标关键字信息为待读取的存储数据400的关键字信息。例如要读取值为26的存储数据400,可以先获取值为26的存储数据400对应的关键字信息26。
对于步骤S600,首先根据目标关键字信息从内存100寻找与目标关键字信息对应的索引信息300,当内存100存在与目标关键字信息对应的索引信息300,内存100中的索引数据按照B树结构或跳表结构进行存储,则直接从内存100读取与目标关键字信息对应的索引信息300,进而得到待读取的存储数据400的位置信息,即目标位置信息。
当内存100不存在与目标关键字信息对应的索引信息300,目标关键字信息对应的索引信息300存储在磁盘200的索引存储区210,通过学习索引模型310根据索引存储区210中的与目标关键字信息对应的索引信息300得到目标位置信息。
参照图7,具体地,通过学习索引模型310根据索引存储区210中的与目标关键字信息对应的索引信息300得到目标位置信息,包括:
步骤S601,从至少两个学习索引模型中,确定与目标关键字信息对应的学习索引模型;
步骤S602,通过与目标关键字信息对应的学习索引模型,得到关键字位置信息,关键字位置信息表示目标关键字信息在索引存储区的位置;
步骤S603,根据关键字位置信息,得到索引存储区中的与目标关键字信息对应的索引信息;
步骤S604,根据索引存储区中的与目标关键字信息对应的索引信息,得到目标位置信息。
根据B树结构读出索引信息300的时间复杂度开销为O(LogN),根据学习索引模型310读出索引信息300的时间复杂度开销为O(1),N为索引信息300的数量。
对于步骤S700,数据库系统根据目标位置信息从磁盘200读取与目标关键字信息对应的存储数据400。例如,在步骤S600中得到关键字信息26对应的目标位置信息为4,则根据目标位置信息4从磁盘200的位置4读取值为26的存储数据400。
本发明的一个实施例还提供了一种电子设备。参照图8,图8是电子设备的结构图。该电子设备包括:一个或多个处理器510和存储器520。处理器510和存储器520可以通过总线或者其他方式连接。
存储器520作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序,如上述本发明实施例中的数据存储方法或数据读取方法。处理器510通过运行存储在存储器520中的非暂态软件程序以及程序,从而实现上述本发明实施例中的数据存储方法或数据读取方法。
存储器520可以包括程序区和数据区,其中,程序区可存储操作系统、至少一个功能所需要的应用程序;数据区可存储执行上述本发明实施例中的数据存储方法或数据读取方法所需的数据等。此外,存储器520可以包括高速随机存取存储器520,还可以包括非暂态存储器520,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器520可选包括相对于处理器510远程设置的存储器520,这些远程存储器520可以通过网络连接至该终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实现上述本发明实施例中的数据存储方法或数据读取方法所需的非暂态软件程序以及程序存储在存储器520中,当被一个或者多个处理器510执行时,执行上述本发明实施例中的数据存储方法或数据读取方法,例如,执行以上描述的图2中的步骤S100至步骤S400、图3中的步骤S310至步骤S340、图3中的步骤S411至步骤S414、图4中的步骤S421至步骤S424、图5中的步骤S431至步骤S434、图6中的步骤S500至步骤S700、图7中的步骤S601至步骤S604。
以上所描述的节点实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
此外,本发明的一个实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个处理器或控制器执行,例如,被一个处理器执行,可使得上述处理器执行上述实施例中的数据存储方法或数据读取方法。例如,执行以上描述的图2中的步骤S100至步骤S400、图3中的步骤S310至步骤S340、图3中的步骤S411至步骤S414、图4中的步骤S421至步骤S424、图5中的步骤S431至步骤S434、图6中的步骤S500至步骤S700、图7中的步骤S601至步骤S604。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (12)
1.一种数据存储方法,应用于数据库系统,所述数据库系统包括内存和磁盘,所述磁盘包括索引存储区,所述索引存储区存储有索引信息,所述索引存储区包括至少两个存储层,所述索引存储区中的所述索引信息按照写入时间的先后顺序分层地存储;
所述数据存储方法包括:
当将存储数据写入所述磁盘,获取与存储数据对应的索引信息;
将所述索引信息写入所述内存和第一存储层,所述第一存储层为存储有写入时间最早的所述索引信息的存储层;
在所述内存中的索引信息的数量超过第一信息量阈值的情况下,将所述内存中的所述索引信息和所述第一存储层中的所述索引信息进行合并,得到第一合并索引信息,在合并过程中同步建立与所述第一合并索引信息对应的学习索引模型,将所述第一合并索引信息替换所述第一存储层中的所述索引信息;
在当前存储层的索引信息的数量超过第二信息量阈值的情况下,将所述当前存储层中的所述索引信息和下一存储层中的所述索引信息进行合并,得到第二合并索引信息,在合并过程中同步建立与所述第二合并索引信息对应的学习索引模型,将所述第二合并索引信息替换所述下一存储层中的所述索引信息。
2.根据权利要求1所述的数据存储方法,其特征在于,所述将所述内存中的所述索引信息和所述第一存储层中的所述索引信息进行合并,得到第一合并索引信息,在合并过程中同步建立与所述第一合并索引信息对应的学习索引模型,包括:
选择所述内存中写入时间最迟的至少一个所述索引信息,作为第一合并目标;
选择所述第一存储层中写入时间最早的至少一个所述索引信息,作为第二合并目标;
从所述第一存储层将所述第二合并目标对应的索引信息读取到所述内存中;
在所述内存中将所述第一合并目标对应的所述索引信息与所述第二合并目标对应的所述索引信息进行合并,得到第一索引信息集,将所述第一索引信息集作为所述第一合并索引信息,在合并过程中同步建立与所述第一合并索引信息对应的学习索引模型。
3.根据权利要求2所述的数据存储方法,其特征在于,所述第一存储层包括至少一个第一数据段,所述第一数据段包括至少一个所述索引信息;所述内存存储有所述第一数据段的第一分段范围信息;
所述从所述第一存储层将所述第二合并目标对应的索引信息读取到所述内存中,具体为:
根据所述第一分段范围信息,确定所述第二合并目标的第一目标分段范围信息,根据所述第一目标分段范围信息,从所述第一存储层将所述第二合并目标对应的所述第一数据段读取到所述内存中。
4.根据权利要求2所述的数据存储方法,其特征在于,所述内存中的所述索引信息以树形结构存储;所述选择所述内存中写入时间最迟的至少一个所述索引信息,作为第一合并目标,包括:
对所述内存中的所有所述索引信息的写入时间进行统计,得到写入时间信息;
按照所述写入时间信息从迟到早对所述内存中的所有所述索引信息进行排序,选择排名在预设名次之前的所述索引信息作为所述第一合并目标。
5.根据权利要求3所述的数据存储方法,其特征在于,所述索引存储区还包括至少一个第二存储层;所述第二存储层的索引信息的写入时间迟于所述第一存储层的索引信息的写入时间;当所述当前存储层为所述第一存储层,所述将所述当前存储层中的所述索引信息和下一存储层中的所述索引信息进行合并,得到第二合并索引信息,并同步建立与所述第二合并索引信息对应的学习索引模型,包括:
选择所述第一存储层中写入时间最迟的至少一个所述索引信息,作为第三合并目标;
选择与所述第一存储层对应的下一第二存储层中写入时间最早的至少一个所述索引信息,作为第四合并目标;
从所述第一存储层,将所述第三合并目标对应的所述索引信息读取到所述内存中,并从与所述第一存储层对应的下一第二存储层,将所述第四合并目标对应的所述索引信息读取到所述内存中;
在所述内存中将所述第三合并目标对应的所述索引信息与所述第四合并目标对应的所述索引信息进行合并,得到第二索引信息集,将所述第二索引信息集作为所述第二合并索引信息,在合并过程中同步建立与所述第二合并索引信息对应的学习索引模型。
6.根据权利要求5所述的数据存储方法,其特征在于,当所述当前存储层为其中一个第二存储层,所述下一存储层为与所述其中一个第二存储层对应的下一第二存储层;所述将所述当前存储层中的所述索引信息和下一存储层中的所述索引信息进行合并,得到第二合并索引信息,并同步建立与所述第二合并索引信息对应的学习索引模型,包括:
选择所述其中一个第二存储层中写入时间最迟的至少一个所述索引信息,作为第五合并目标;
选择与所述下一第二存储层中写入时间最早的至少一个所述索引信息,作为第六合并目标;
从所述其中一个第二存储层,将所述第五合并目标对应的所述索引信息读取到所述内存中,并从与所述下一第二存储层,将所述第六合并目标对应的所述索引信息读取到所述内存中;
在所述内存中将所述第五合并目标对应的所述索引信息与所述第六合并目标对应的所述索引信息进行合并,得到第三索引信息集,将所述第三索引信息集作为所述第二合并索引信息,在合并过程中同步建立与所述第二合并索引信息对应的学习索引模型。
7.根据权利要求6所述的数据存储方法,其特征在于,所述第二存储层包括至少一个第二数据段,所述第二数据段包括至少一个所述索引信息;所述内存存储有所述第二数据段的第二分段范围信息;
所述从所述第一存储层,将所述第三合并目标对应的所述索引信息读取到所述内存中,并从与所述第一存储层对应的下一第二存储层,将所述第四合并目标对应的所述索引信息读取到所述内存中,具体为:
根据所述第一分段范围信息,确定所述第三合并目标的第二目标分段范围信息,和根据所述第二分段范围信息,确定所述第四合并目标的第三目标分段范围信息,根据所述第二目标分段范围信息,从所述第一存储层将所述第三合并目标对应的所述第二数据段读取到所述内存中,并根据所述第三目标分段范围信息,从与所述第一存储层对应的下一第二存储层,将所述第四合并目标对应的所述第二数据段读取到所述内存中;
所述从所述其中一个第二存储层,将所述第五合并目标对应的所述索引信息读取到所述内存中,并从与所述下一第二存储层,将所述第六合并目标对应的所述索引信息读取到所述内存中,具体为:
根据所述第二分段范围信息,确定所述第五合并目标的第四目标分段范围信息,和所述第五合并目标的第四目标分段范围信息,根据所述第四目标分段范围信息,从所述其中一个第二存储层,将所述第五合并目标对应的所述第二数据段读取到所述内存中,并根据所述第五目标分段范围信息,从所述下一第二存储层,将所述第六合并目标对应的所述第二数据段读取到所述内存中。
8.一种数据读取方法,应用于数据库系统,所述数据库系统包括内存和磁盘,所述磁盘包括索引存储区,所述内存和所述索引存储区存储有索引信息,所述索引信息包括所述存储数据的关键字信息和所述存储数据的位置信息,所述索引存储区包括至少两个存储层,所述索引存储区中的所述索引信息按照写入时间的先后顺序分层地存储;所述数据库按照如权利要求1至7任一项所述的数据存储方法对存储数据进行存储;
所述数据读取方法包括:
获取目标关键字信息,所述目标关键字信息为待读取的存储数据的关键字信息;
当所述内存存在与所述目标关键字信息对应的索引信息,根据所述内存中的与所述目标关键字信息对应的索引信息得到目标位置信息,或者当所述索引存储区存在与所述目标关键字信息对应的索引信息,通过学习索引模型根据所述索引存储区中的与所述目标关键字信息对应的索引信息得到目标位置信息,所述目标位置信息为待读取的存储数据的位置信息;
根据所述目标位置信息,从所述磁盘读取所述存储数据。
9.根据权利要求8所述的数据读取方法,其特征在于,所述通过学习索引模型根据所述索引存储区中的与所述目标关键字信息对应的索引信息得到目标位置信息,包括:
从至少两个所述学习索引模型中,确定与所述目标关键字信息对应的学习索引模型;
通过与所述目标关键字信息对应的学习索引模型,得到关键字位置信息,所述关键字位置信息表示所述目标关键字信息在所述索引存储区的位置;
根据所述关键字位置信息,得到所述索引存储区中的与所述目标关键字信息对应的索引信息;
根据所述索引存储区中的与所述目标关键字信息对应的索引信息,得到所述目标位置信息。
10.一种数据库系统,其特征在于,所述数据库系统包括内存和磁盘,所述磁盘包括索引存储区,所述索引存储区存储有索引信息,所述索引存储区包括至少两个存储层,所述索引存储区中的所述索引信息按照写入时间的先后顺序分层地存储;所述数据库按照如权利要求1至7任一项所述的数据存储方法对存储数据进行存储;所述数据库按照如权利要求8至9任一项所述的数据读取方法对存储数据进行读取。
11.一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的数据存储方法,或者权利要求8至9中任一项所述的数据读取方法。
12.一种计算机可读存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令用于执行如权利要求1至7中任一项所述的数据存储方法,或者权利要求8至9中任一项所述的数据读取方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210699463.6A CN117290353A (zh) | 2022-06-20 | 2022-06-20 | 数据存储方法、读取方法、数据库系统、设备及介质 |
PCT/CN2023/099958 WO2023246566A1 (zh) | 2022-06-20 | 2023-06-13 | 数据存储方法、读取方法、数据库系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210699463.6A CN117290353A (zh) | 2022-06-20 | 2022-06-20 | 数据存储方法、读取方法、数据库系统、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117290353A true CN117290353A (zh) | 2023-12-26 |
Family
ID=89257706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210699463.6A Pending CN117290353A (zh) | 2022-06-20 | 2022-06-20 | 数据存储方法、读取方法、数据库系统、设备及介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117290353A (zh) |
WO (1) | WO2023246566A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9361402B2 (en) * | 2013-12-30 | 2016-06-07 | Sybase, Inc. | Tiered index management |
CN109726264B (zh) * | 2019-01-16 | 2022-02-25 | 北京百度网讯科技有限公司 | 用于索引信息更新的方法、装置、设备和介质 |
CN113722319A (zh) * | 2021-08-05 | 2021-11-30 | 平凯星辰(北京)科技有限公司 | 基于学习索引的数据存储方法 |
CN113961153B (zh) * | 2021-12-21 | 2022-11-04 | 杭州趣链科技有限公司 | 一种索引数据写入磁盘的方法、装置及终端设备 |
-
2022
- 2022-06-20 CN CN202210699463.6A patent/CN117290353A/zh active Pending
-
2023
- 2023-06-13 WO PCT/CN2023/099958 patent/WO2023246566A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023246566A1 (zh) | 2023-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107924408B (zh) | 在文件系统中搜索元数据和标签的异构索引的系统和方法 | |
US20150066857A1 (en) | Replication of snapshots and clones | |
CN105320775A (zh) | 数据的存取方法和装置 | |
CN111324577B (zh) | 一种Yml文件读写的方法及装置 | |
US10423608B2 (en) | Dynamic directory of objects based on logical attributes | |
CN108614837B (zh) | 文件存储和检索的方法及装置 | |
CN111177143B (zh) | 键值数据存储方法、装置、存储介质与电子设备 | |
CN109522271B (zh) | 一种b+树节点的批量插入和删除方法及装置 | |
CN107016047A (zh) | 文档查询、文档存储方法及装置 | |
CN109189759B (zh) | Kv存储系统中的数据读取方法、数据查询方法、装置及设备 | |
CN108446308A (zh) | 可扩展分布式数据库的系统和方法 | |
CN110807028B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
WO2023083237A1 (zh) | 图数据的管理 | |
CN111680019B (zh) | 一种区块链的数据扩容方法及其装置 | |
CN113867627A (zh) | 一种存储系统性能优化方法及系统 | |
CN114840487A (zh) | 分布式文件系统的元数据管理方法和装置 | |
CN111596945A (zh) | 嵌入式系统动态多分区固件的差分升级方法 | |
CN113568868A (zh) | 文件系统管理方法、系统、电子设备及介质 | |
CN117290353A (zh) | 数据存储方法、读取方法、数据库系统、设备及介质 | |
CN115269745B (zh) | 一种关系型数据至图数据映射方法、设备及存储介质 | |
KR20210077975A (ko) | 블록체인 기반의 지리공간 데이터를 위한 공간 데이터 인덱싱 방법 및 장치 | |
CN115391355A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN117215477A (zh) | 数据对象存储方法、装置、计算机设备和存储介质 | |
CN112181248B (zh) | 一种历史列表的操作方法和装置 | |
EP3995972A1 (en) | Metadata processing method and apparatus, and computer-readable storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |