多数 (数十から数十万) のオブジェクトを格納するためのシステムを開発する必要があります。各オブジェクトは電子メールのようなものです。メインのテキスト本文と、サイズが制限されたいくつかの補助テキスト フィールドがあります。ボディのサイズは数バイトから数 KB です。
各アイテムには、それを識別する単一の一意の ID (おそらく GUID) があります。
ストアは、オブジェクトが追加されたときにのみ書き込まれます。よく読まれます。削除はまれです。データはほとんどすべて人間が読めるテキストであるため、簡単に圧縮できます。
I/O を発行し、メモリとキャッシュを管理できるシステムが理想的です。
インデックスをメモリに保持し、それを使用してインデックスをオブジェクトの単一 (および主) キーにマップします。キーを取得したら、ディスクまたはキャッシュからロードします。
データ管理システムはアプリケーションの一部である必要があります。OS サービスに依存したくありません。または個別にインストールされたパッケージ。ネイティブ (C++) が最適ですが、マネージ (C#) も問題ありません。
データベースは当然の選択だと思いますが、これはオブジェクトの検索とメモリへのロードを超高速にする必要があります。私はデータベース技術の経験がなく、一般的なリレーショナル システムではこの可変サイズのデータをすべて効率的に処理できないのではないかと心配しています。
(注、これは私の仕事とは何の関係もありません - これは個人的なプロジェクトです。)
あなたの経験では、従来のリレーショナル DB に代わる実行可能な代替手段は何ですか? または、DBはこれに適していますか?