Вы создаете движок базы данных?
Редактировать: Я создал систему баз данных на основе дисков еще в середине 90-х годов.
С записями фиксированного размера проще всего работать, потому что смещение вашего файла для определения местоположения записи может быть легко рассчитано как кратное размеру записи. У меня также были некоторые записи с переменным размером записи.
Моя система должна быть оптимизирована для чтения. Данные фактически сохранялись на CD-ROM, поэтому они были доступны только для чтения. Я создал двоичные файлы дерева поиска для каждого столбца, в котором я хотел искать. Я взял реализацию дерева двоичного поиска с открытым исходным кодом в памяти и преобразовал ее для произвольного доступа к файлу диска. Упорядоченные операции чтения из каждого индексного файла были простыми, а затем считывание каждой записи данных из основного файла данных в соответствии с порядком индексации также было простым. Мне не нужно было выполнять какую-либо сортировку в памяти, и система работала намного быстрее, чем любая из доступных систем СУБД, которая в то время работала на клиентском компьютере.
Для данных фиксированного размера записи индекс может просто отслеживать номер записи. Для записей данных переменной длины в индексе нужно просто сохранить смещение в файле, с которого начинается запись, и каждая запись должна начинаться со структуры, которая определяет ее длину.