ファイル内の特定のレコードにアクセスできるようにする必要がある場合は、ある種のインデックスまたは固定のレコード サイズが必要になりますが、それはレコードの個々の部分ではなく、レコード全体に対するものです。通常、ストレージ内の 4 バイトまたは 8 バイトの境界にデータを配置するために、それほど長い時間はかかりません。もちろん、メモリ内の整列された場所に一度にレコードを読み取ると、変換を実行するために整列されたデータになります...したがって、すべてがある程度絡み合ってしまう可能性がありますが、変換は変換後の頻繁なアクセスではなく、1 回限りの可能性が高いです。
もちろん、ストレージサイズは最適化にとって重要です-ディスクから読み取るデータが少ないほど、多く読み取るよりも安価になるためです(一般的に...)。
固定レコード サイズなどの特定の要件がない限り、できるだけ使いやすいようにストレージを設計しようと思います。パフォーマンスに関して特定の懸念がある場合は、それらのプロファイルを作成する必要があります。たとえば、 UTF-16 を使用して文字列をエンコードする方が、UTF-8 よりも効率的である可能性があります。これは、エンコードとデコードに必要な作業が少なくて済むためです... より多くのスペースが必要になりますが. ただし、仮定を立てるのではなく、これらをテストする必要があります。どこからストレージ フォーマットをロードするかによって、大きな違いが生じることに注意してください。ネットワーク経由、メカニカル ディスク、ソリッド ステート ドライブなどです。すべての場合で最速です。