Это полностью зависит от типа данных и того, что вы пытаетесь найти.
Если вы пытаетесь искать по индексу записи, то обязательно: поля фиксированного размера облегчают жизнь, но тратят пространство. Если вы пытаетесь искать что-то еще, сохраняйте индекс ключа: местоположение работает хорошо. Если вы хотите иметь возможность создавать файл последовательно, вы можете поместить индекс в конец, но оставить первые четыре байта файла (после магического числа или чего-то еще), чтобы представить местоположение самого индекса (при условии, что вы можете переписать эти первые четыре байта).
Если вы хотите иметь возможность выполнять своего рода двоичную отбивку на блоках переменной длины, то вам поможет разумно эффективный способ определения начала блока - как и наличие следующих / предыдущих указателей, как упомянул Александр. 1005 *
По сути, все дело в метаданных, но правильный тип метаданных будет зависеть от типа данных и вариантов использования для поиска в первую очередь.