[发明专利]一种数据存储方法、访问方法及装置有效
申请号: | 201710795008.5 | 申请日: | 2017-09-06 |
公开(公告)号: | CN107622020B | 公开(公告)日: | 2020-09-25 |
发明(设计)人: | 蔡远迪 | 申请(专利权)人: | 网宿科技股份有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 黄志华 |
地址: | 200030 上海市徐汇区*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 存储 方法 访问 装置 | ||
本发明公开了一种数据存储方法、访问方法及装置,包括:获取指针数组的第N个指针元素;确定第N个指针元素在待存储数据的存储数组集中的对应数组;在第N个指针元素的对应数组的可用存储空间已满时,根据存储规则构建扩展数组;对指针数组中的指针元素进行扩展调整,使指针数组中的最后一个指针元素与扩展数组相对应;将待存储数据元素依次存入扩展数组。在进行动态扩展时,只需增加存储数组集中的数组(扩展数组)个数,并对指针数组中的指针元素进行扩展调整,减少了随机访问数据结构动态扩展时的资源消耗。
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据存储方法、访问方法及装置。
背景技术
随着计算机技术的出现和兴起,不同类型的数据存储方法也应运而生。这些数据存储方法采用各种各样的数据结构,比如数组,链表,哈希表,对数据进行存储。对于信息爆炸的21世纪,如何高效地存储、访问数据将是人们不停探索的方向。
现有的数据存储方法所采用的数据结构,按访问方式大致可分为随机访问和顺序访问两种。对于随机访问的数据结构,如图1(a)所示,为一种现有的数组结构示意图,其中每一个小方格代表存储的一个数据元素,数组所占用的存储空间为一个连续的存储空间,数组中的数据元素按照存入顺序依次排列,如图1(a)中数据元素2便是在数据元素1之后被存入数组。访问数组时,根据目的数据元素的地址确定其在数组中的位置,可直接从数组中读取到目的数据元素,可见,对于如数组这种随机访问的数据结构,可以在常数时间内读取数组中任一数据元素。而对于顺序访问的数据结构,如图1(b)所示,为一种现有的链表结构示意图,每个数据元素附加一个位置元数据,用于指向该数据元素逻辑上的下一个数据元素。访问链表中的数据元素时,需要从第一个数据元素开始遍历到所需数据元素,故顺序访问的访问用时和数据元素的位置呈线性关系。显然,随机访问访问用时更加稳定。
然而,虽然随机访问较顺序访问有上述优势,但是随机访问的数据结构的存储方式却存在一定的弊端。在存储数据时,往往会遇到存储空间不足的情况,当原有存储空间无法容纳需要存储的数据时,就需要数据结构能够支持动态扩展以扩大所占用的存储空间。对于随机访问的数据结构,数据元素在存储空间中往往是连续存储的,在进行动态扩展时,需要先申请一块更大的存储空间(一般为现有存储空间的两倍),之后,复制现有存储空间中存储的数据至新申请的存储空间中,再释放原来的存储空间。这种动态扩展方式需要对存储的全部数据都进行复制和转移,需要较长的时间消耗和较高的资源消耗,而且,进行动态扩展和不进行动态扩展时所消耗的资源差异巨大,影响了数据存储、访问的稳定性。
发明内容
本发明提供一种数据存储方法、访问方法及装置,用以解决现有技术中存在随机访问数据结构的动态扩展资源消耗巨大的问题。
本发明实施例提供一种数据存储方法,包括:
获取待存储数据的指针数组的第N个指针元素;
确定所述第N个指针元素在所述待存储数据的存储数组集中的对应数组;
在所述第N个指针元素的对应数组的可用存储空间已满时,根据存储规则构建扩展数组;所述存储规则用于规定所述存储数组集中各数组可用存储空间的大小;
对所述指针数组中的指针元素进行扩展调整;经过扩展调整后的所述指针数组中的最后一个指针元素与所述扩展数组相对应;
将待存储数据元素依次存入所述扩展数组。
可选的,还包括:
在所述第N个指针元素的对应数组的可用存储空间未满时,将所述待存储数据元素顺序存储至所述第N个指针元素的对应数组中。
可选的,所述存储规则包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于网宿科技股份有限公司,未经网宿科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710795008.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种页面测试方法及装置
- 下一篇:一种缓存数据的方法及装置
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置