あなたが探している答えが「読むべき本」であれば、私は助けることはできません。
「どのようにするか」があなたにとってもよい場合は、私はいくつかの提案をしました。
1つの良い解決策は、Srykarによって提案されたものです。私は、MySQLの代わりにSQLiteを使うと付け加えます。あなたのプログラムに埋め込むことができるオープンソースのCライブラリです。 SQLステートメントでやったやり方と同じようにDBにデータを格納することができますが、代わりにCライブラリ関数を呼び出すことができます。あなたの場合は、すべてをメモリに保存し、適切な時間にデータをディスクに保存することができます。
参考: http://www.sqlite.org
別のオプションは、古い "それを自分のやり方" です。つまり、あなたのデータをファイルに保存するのは非常に複雑なことではありません(データが非常に構造化されている場合を除きますが、この場合はオプションnr。1を使用します)。
ファイルの構造をどのようにしたいかの計画を書き留めます。そして、ディスクにファイルを書き込むときとそれを読むときに、データをメモリに再格納するときの両方で、その計画に従います。
nのレコードがある場合。 nをディスクに書き込み、各レコードを書き込みます。
各レコードに可変長がある場合は、レコードを書き込む前に各レコードの長さを書き込みます。
あなたの質問には「ランダムアクセス」があります。おそらく、ファイルが非常に大きく、アクセス時にディスクから読みたい部分だけを表示することになります。
インデックスを作成する予定がある場合は、そのインデックスはファイルの先頭から各要素のオフセットをバイト単位で示します。インデックスをファイルの先頭に格納し、データを格納します。
ファイルを読み込むと、インデックスの読み込みが始まり、必要なデータへのオフセットが取得され、ファイルのその部分が読み込まれます。
これらは単にアイデア...彼らは助け
希望を得るために、非常に基本的な例です!
どのような変数がデータに含まれますか?異なる表記法を持つ長い文字列ですか? – billz
この質問は、その必要性(可変長レコードへのランダムアクセス)に関してはっきりとしているので、重複していません。 – MSalters
@limi:なぜファイルを決めたのですか?この目的のためにデータベースが存在し、データを永続ストレージにマップするために必要なすべてのロジックを実装しています。 – MSalters