我需要开发一个用于存储大数目(10到100的数千个)对象的系统。每个对象都像电子邮件一样 - 有一个主体文本体,以及几个尺寸有限的辅助文本字段。一个主体将从几个字节到几KB的大小。在磁盘上存储大量不同大小的对象
每个项目都有一个唯一的ID(可能是一个GUID)来标识它。
只有当对象添加到商店时才会写入商店。它会经常阅读。删除将很少。这些数据几乎都是人类可读的文本,因此它可以很容易被压缩。
的系统,让我发出I/O和系统的存储和缓存将是理想的。
我要保存在内存中的索引,用它来映射指数为对象的单一(和初级)键。一旦我有了密钥,我就会从磁盘或缓存中加载它。
数据管理系统需要我的应用程序的一部分 - 我不希望依赖于OS的服务。或单独安装的软件包。本机(C++)将是最好的,但一个管理(C#)的事情会好的。
我相信,一个数据库是一个显而易见的选择,但是这必须是超快速的查找和加载到一个对象的内存。我对数据库技术没有经验,我担心一般的关系系统不会有效地处理所有这些可变大小的数据。
(注意,这无关我的工作 - 它的一个个人项目。)
在你的经验,有什么可行的替代传统的关系型数据库?或者数据库会为此工作好吗?
嗨Tvanfosson,我会保存在内存中的索引,用它来索引映射为对象的单一(和初级)键。一旦我有了密钥,我就会从磁盘或缓存中加载它。 感谢您的意见:) – Foredecker 2008-11-04 04:57:42