我需要开发一个系统来存储大量(10 到 100 的数千个)对象。每个对象都类似于电子邮件 - 有一个主要文本正文和几个有限大小的辅助文本字段。正文的大小从几个字节到几个 KB。
每个项目都有一个唯一的 ID(可能是 GUID)来标识它。
仅当向其中添加对象时才会写入存储。会经常阅读。删除将是罕见的。数据几乎都是人类可读的文本,因此很容易压缩。
一个让我发出 I/O 并管理内存和缓存的系统将是理想的。
我将把索引保存在内存中,使用它将索引映射到对象的单个(和主)键。获得密钥后,我将从磁盘或缓存中加载它。
数据管理系统需要成为我的应用程序的一部分——我不想依赖操作系统服务。或单独安装的软件包。本机 (C++) 最好,但管理 (C#) 就可以了。
我相信数据库是一个显而易见的选择,但这需要超快的查找和加载到对象的内存中。我对数据库技术没有经验,我担心一般的关系系统无法有效地处理所有这些可变大小的数据。
(注意,这与我的工作无关——这是一个个人项目。)
根据您的经验,传统关系数据库的可行替代方案是什么?或者数据库会为此工作吗?