支持大字段数据的存储引擎控制方法、系统及存储介质技术方案

技术编号:40008792 阅读:25 留言:0更新日期:2024-01-16 14:56
本发明专利技术公开了支持大字段数据的存储引擎控制方法、系统及存储介质,构建用于动态地分配和释放内存块的内存池,所述内存池包括存储在链表中的若干个内存块,所述内存块包括一个指向内存位置的指针;在需要存储大字段数据时,按需分配相应大小的内存块。根据需要处理的大字段数据,设计相应的表结构和数据类型;确定索引结构和查询策略;查询方法包括insert和find方法,针对大字段数据类型,对于范围查询,使用B+树索引结构;而对于点查询,使用哈希索引结构;确定数据压缩和缓存策略,用于减小内存占用并提高查询性能。本发明专利技术成功解决了现有技术中内存存储引擎不支持大字段数据的问题,提高了内外网SQL穿透性能,具有较好的实用性。

【技术实现步骤摘要】

本专利技术属于内外网数据交换的,具体涉及支持大字段数据的存储引擎控制方法、系统及存储介质


技术介绍

1、在现代计算机网络环境中,内外网穿透是一种常见的需求,以实现跨网络边界的数据访问和通信。其中,sql穿透是一种主要的内外网数据交换方式,允许用户通过sql查询和操作远程数据库。常见的数据库系统mysql支持多种存储引擎,以满足不同的应用场景和性能需求。memory存储引擎具有以下优点:

2、(1)数据存储在内存中:memory存储引擎将所有数据存储在内存中,无需落盘,因此查询性能较高。

3、(2)固定大小的内存块:memory存储引擎将数据存储在固定大小的内存块中,这种实现简化了内存管理,但限制了对大字段数据的支持。

4、(3)使用哈希索引:memory存储引擎默认使用哈希索引,适用于等值查询,但不支持范围查询。

5、目前,mysql的memory存储引擎由于将数据存储在内存中进行交换,具有较高的性能。memory存储引擎是mysql提供的一种内存存储引擎,其数据全部存储在内存中,不需要落盘。这种存储引擎具本文档来自技高网...

【技术保护点】

1.一种支持大字段数据的存储引擎控制方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种支持大字段数据的存储引擎控制方法,其特征在于,所述步骤S1中,在初始化内存池时,在构造函数中预分配设定大小的内存,同时创建一个内存块,内存块大小为设定大小,且指针指向分配的内存,并将内存块加入链表中;

3.根据权利要求1所述的一种支持大字段数据的存储引擎控制方法,其特征在于,所述步骤S2中,创建用于管理分割后的数据块的Large Field类;在Large Field类中,定义一个用于存储分割的数据块的成员变量blocks向量;在Large Field类中,当插入数据...

【技术特征摘要】

1.一种支持大字段数据的存储引擎控制方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种支持大字段数据的存储引擎控制方法,其特征在于,所述步骤s1中,在初始化内存池时,在构造函数中预分配设定大小的内存,同时创建一个内存块,内存块大小为设定大小,且指针指向分配的内存,并将内存块加入链表中;

3.根据权利要求1所述的一种支持大字段数据的存储引擎控制方法,其特征在于,所述步骤s2中,创建用于管理分割后的数据块的large field类;在large field类中,定义一个用于存储分割的数据块的成员变量blocks向量;在large field类中,当插入数据时,将原始数据分割为多个小块,然后分别将这些小块复制到新分配的内存块中,并将新分配的内存块的指针存储在blocks向量中;在读取时,按顺序从每个内存块中复制数据,以便在需要时重新构建原始数据。

4.根据权利要求1所述的一种支持大字段数据的存储引擎控制方法,其特征在于,所述步骤s3中,在insert方法中,在选择了索引结构并完成了索引项的插入之后,执行索引的维护策略,通过检查索引当前占用的内存和查询性能,决定是否需要进行维护操作;如果索引当前占用的内存超过了设定的阈值,则删除索引项释放内存;如果检测到索引的查询性能下降,则重建索引。

5.根据权利要求1所述的一种支持大字段数据的存储引擎控制方法,其特征在于,所述步骤s4中,分别通过compress函数和decompress函数执行数据压缩和解压缩:

6.根据权利要求1所述的一种支持大字段数据的存储引擎控制方法,其特征在于,所述步骤s4中,使用lru策略删除最不常用的数据项,以确保缓存中始终保留最常用的数据项;定义cache类,且cache类包括哈希表cache和双向链表data...

【专利技术属性】
技术研发人员:阮正平张捷宋卫平罗俊杰蒋林峰田富强叶鑫平
申请(专利权)人:四川中电启明星信息技术有限公司
类型:发明
国别省市:

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

1