首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用频繁的“附加”存储大量的大字符串,并且很少读取

使用频繁的“附加”存储大量的大字符串,并且很少读取
EN

Software Engineering用户
提问于 2012-12-08 00:38:24
回答 3查看 737关注 0票数 2

在我的当前项目中,我需要为给定对象的每个实例存储一个非常长的ASCII字符串。此字符串将收到每分钟2个附加项,并且不会被如此频繁地检索。

最坏的情况是一个5-10 is的字符串。我将有数以千计的对象实例,我担心将所有这些字符串存储在文件系统中并不是最优的,但我想不出更好的解决方案。

有人能提出一个替代方案吗?也许是一家重要的商店?在这种情况下,哪一种?还有其他想法吗?

EN

回答 3

Software Engineering用户

发布于 2012-12-08 02:54:59

在10 to字符串中添加几个字符听起来是一个糟糕的设计选择。备份并考虑您实际要做的事情,而不需要假设/结论所讨论的对象是一个字符串。也许对象的某些视图(很少使用)需要是字符串,但这是另一回事。

票数 3
EN

Software Engineering用户

发布于 2012-12-08 03:11:34

以下是我如何解决这个问题的方法:

我会将数据存储为2GB文件中的一系列块。每个块都需要字符串ID、该字符串的块序列、前一个块的文件ID和文件偏移量以及大约2k的数据空间,以便将字符串字符写入其中。当该块的数据空间被填充时,您将分配下一个未使用的块来继续数据流并回发到前一个块。

对于每个对象字符串,您需要将块序列、文件句柄、文件偏移量和可以添加到该块的剩余字节保存在内存中。

当需要重新创建要读取的字符串时,根据块序列号知道字符串有多大,然后必须从每个块读取数据。

基于1000's的对象,每个对象写2次,需要考虑磁盘基础结构。

票数 1
EN

Software Engineering用户

发布于 2012-12-08 09:28:38

将它们作为单独的项/行插入。在阅读的时候把它们放在一起。

这可以在关系数据库或简单文件中完成。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/178707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档