System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 数据读取方法、计算机设备以及计算机可读存储介质技术_技高网

数据读取方法、计算机设备以及计算机可读存储介质技术

技术编号:40255618 阅读:12 留言:0更新日期:2024-02-02 22:48
本申请属于数据库技术领域,尤其涉及一种数据读取方法、计算机设备以及计算机可读存储介质。方法包括:确定第一键值所在的数据存储文件结构,包括第一文件和第二文件,第一文件存储有至少一个键值以及每个键值对应数据,第二文件用于确定每个键值对应数据在第一文件中的存储位置。读取数据存储文件结构中的第二文件。根据第二文件确定第一键值对应数据在第一文件中的存储位置。根据存储位置,从第一文件中读取第一键值对应的数据。该方法只涉及读取第二文件和读取第一文件中的键值对应的数据两次读取过程,减少了磁盘输入输出的次数,由于磁盘输入输出的速度较慢,因此,减少次数可以使数据库系统的整体性能得到较大的提升。

【技术实现步骤摘要】

本申请涉及数据库,特别涉及一种数据读取方法、计算机设备以及计算机可读存储介质


技术介绍

1、日志结构合并树(log structured merge tree,lsm-tree),简称lsm,是一种分层、有序、面向磁盘的数据结构,其核心思想是充分利用磁盘的顺序写性能要远高于随机写性能这一特性,将批量的随机写转化为一次性的顺序写。因此lsm作为一种持久化键值数据(key-value,kv)存储方案被广泛应用。

2、目前,lsm类型的数据库主要包括leveldb、rocksdb等,这些数据库的最小文件单元为排序字符串表(sorted string stable,sst),其中,写入数据库的kv数据以一定的格式组织成sst。基于目前的sst,数据库的操作系统从磁盘上读取kv数据,会涉及多次磁盘读写,这导致了数据库系统的速度变慢。


技术实现思路

1、本申请提供了一种数据读取方法、计算机设备以及计算机可读存储介质,减少了磁盘读写的次数,从而提高了数据库系统的整体性能。

2、所述技术方案如下:

3、第一方面,本申请实施例提供一种数据读取方法,包括:计算机设备确定第一键值所在的数据存储文件结构,数据存储文件结构包括第一文件和第二文件,第一文件存储有至少一个键值以及每个键值对应数据,至少一个键值包括第一键值,第二文件用于确定每个键值对应数据在第一文件中的存储位置。计算机设备读取数据存储文件结构中的第二文件。计算机设备根据第二文件确定第一键值对应数据在第一文件中的存储位置。计算机设备根据存储位置,从第一文件中读取第一键值对应的数据。

4、在本申请提供的数据读取方法中,将数据存储文件结构分为第一文件和第二文件,其中第一文件用于存储每个键值对应的数据,第二文件用于记录每个键值对应的数据在第一文件中的存储位置,首先确定第一键值所在的数据存储文件结构,再读取数据存储文件结构中的第二文件,获取第一键值对应的数据在第一文件中的存储位置。根据存储位置,再从第一文件中读取第一键值对应的数据。本申请提供的数据读取方法只涉及两次读取过程,分别是读取第二文件和读取第一文件中的键值对应的数据,减少了磁盘io的次数,由于磁盘io的速度较慢,因此,减少磁盘io的次数可以使数据库系统的整体性能得到较大的提升。

5、在第一方面的一种可能的实现方式中,在确定第一键值所在的数据存储文件结构之前,本申请实施例提供的方法还包括:计算机设备根据第一键值,在第一存储介质中的目标跳表中查找第一键值对应的数据。在未查找到第一键值对应的数据的情况下,计算机设备确定在第二存储介质中查找第一键值对应的数据,第二存储介质中存储有至少一个数据存储文件结构。

6、在第一方面的一种可能的实现方式中,在查找到第一键值对应的数据的情况下,计算机设备从第一存储介质中读取第一键值对应的数据。这样可以更加快捷的查找第一键值对应的数据。

7、在第一方面的一种可能的实现方式中,在第二存储介质中存储有多个数据存储文件结构的情况下,多个数据存储文件结构以层级结构进行存储。以层级结构进行存储更有利于对数据存储文件结构进行查找。

8、在第一方面的一种可能的实现方式中,第一文件和第二文件配置在不同的存储介质中。这样可以根据第一文件和第二文件的特性配置合适的存储介质。

9、在第一方面的一种可能的实现方式中,第一文件配置在第三存储介质中,第三存储介质的容量大于或等于预设容量。第二文件配置在第四存储介质中,第四存储介质的读取速度大于或等于预设读取速度。第三存储介质或第四存储介质为第二存储介质的一种。

10、在第一方面的一种可能的实现方式中,第一文件包括至少一个数据块,每个数据块中存储至少一个键值对应的数据。第二文件包括固定前缀、索引块以及布隆过滤器,固定前缀用于存储布隆过滤器的位置信息,索引块用于记录每个数据块在第一文件中的位置,布隆过滤器用于检索至少一个键值对应的数据是否在数据块中。

11、在第一方面的一种可能的实现方式中,根据第二文件确定第一键值对应数据在第一文件中的存储位置,本申请实施例提供的方法还包括:计算机设备读取固定前缀,确定布隆过滤器的存储位置。计算机设备根据布隆过滤器的存储位置,确定布隆过滤器。计算机设备根据布隆过滤器,确定第一键值对应的数据在数据块中。计算机设备读取索引块,确定第一键值对应的数据在第一文件中的存储位置。

12、第二方面,本申请实施例提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面任一项所述的数据读取方法。

13、第三方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的数据读取方法。

14、第四方面,本申请提供了一种计算机程序产品,包括计算机程序,当程序在计算机上运行时,使得计算机执行上述第一方面所述的数据读取方法。

15、第五方面,提供了一种芯片,所述芯片包括处理器,所述处理器和与所述处理器耦合的通信接口,所述处理器用于运行计算机程序或指令,以实现上述所述的数据读取方法,所述通信接口用于与所述芯片之外的其它模块进行通信。

16、可以理解的是,上述第二方面、第三方面、第四方面以及第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。

本文档来自技高网...

【技术保护点】

1.一种数据读取方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,在确定第一键值所在的数据存储文件结构之前,所述方法还包括:

3.根据权利要求2所述的方法,其特征在于,在查找到所述第一键值对应的数据的情况下,从第一存储介质中读取所述第一键值对应的数据。

4.根据权利要求3所述的方法,其特征在于,在第二存储介质中存储有多个所述数据存储文件结构的情况下,多个所述数据存储文件结构以层级结构进行存储。

5.根据权利要求1~4任一项所述的方法,其特征在于,所述第一文件和所述第二文件配置在不同的存储介质中。

6.根据权利要求5所述的方法,其特征在于,所述第一文件配置在第三存储介质中,所述第三存储介质的容量大于或等于预设容量;

7.根据权利要求1~4任一项所述的方法,其特征在于,所述第一文件包括至少一个数据块,每个所述数据块中存储至少一个所述键值对应的数据;

8.根据权利要求7所述方法,其特征在于,根据所述第二文件确定所述第一键值对应数据在所述第一文件中的存储位置,包括:

9.一种计算机设备,其特征在于,所述计算机设备包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至8任一项所述的数据读取方法。

10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的数据读取方法。

...

【技术特征摘要】

1.一种数据读取方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,在确定第一键值所在的数据存储文件结构之前,所述方法还包括:

3.根据权利要求2所述的方法,其特征在于,在查找到所述第一键值对应的数据的情况下,从第一存储介质中读取所述第一键值对应的数据。

4.根据权利要求3所述的方法,其特征在于,在第二存储介质中存储有多个所述数据存储文件结构的情况下,多个所述数据存储文件结构以层级结构进行存储。

5.根据权利要求1~4任一项所述的方法,其特征在于,所述第一文件和所述第二文件配置在不同的存储介质中。

6.根据权利要求5所述的方法,其特征在于,所述第一文件配置在第三存储介质中,所述第三存储介质的...

【专利技术属性】
技术研发人员:邱炜伟黄方蕾郭威尚璇叶晨宇
申请(专利权)人:杭州趣链科技有限公司
类型:发明
国别省市:

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

1