как можно затолкать данные в один файл
https://habr.com/ru/post/223449/а оптимален ли такой подход для kv?
Это зависит
от задач, которые вы решаете.
Попробую объяснить на пальцах.
Вариант 1Вы очень редко меняете базу данных (раз в месяц) и очень часто её читаете (раз в секунду). Имеет смысл делать так, чтобы данные всегда были отсортированы, чтобы поиск был быстрее. Вывод: нужно сортировать базу при любом её изменении
Вариант 2Вы часто добавляете новые записи (раз в секунду) и очень редко читаете их (раз в месяц). Что-то типа логов. Имеет смысл сортировать только при чтении. Вывод: при добавлении сортировать базу не нужно. Записи тупо дописываются в конец файла.
Как видите, оптимизация разная, причем диаметрально. Тем не менее, "правильной" оптимизации нет.