Как сказано в комментариях, ваша идея достаточно хороша, если только эти структуры не действительно большие, мегабайты.
Если у вас есть причины беспокоиться о производительности, например, если вы хотите поддерживать миллионы записей или очень большие значения, более сложные подходы могут быть более эффективными.
Когда мне нужна только 64-битная поддержка, я иногда делаю единственный двоичный файл, оптимизированный для отображения памяти целиком. В частности, заголовок фиксированного размера, а затем отсортированные массивы (ключ, смещение) кортежей, служащих первичным индексом (можно использовать двоичный поиск там, ОС только извлекает необходимые страницы из сопоставленных файлов и довольно агрессивно кэширует их в ОЗУ) , затем значения со смещениями, указанными в индексе.