Если вы хотите выполнить операции РЕДАКТИРОВАНИЕ / УДАЛЕНИЕ, не делайте этого. В конечном итоге вам придется только воссоздать базу данных с нуля, так что вы можете просто использовать ее. Если вы не хотите использовать SQLServer или Oracle, тогда используйте mysql, postgresql или любую другую базу данных в памяти (persist-to-disk). Если вам необходимо поддерживать файлы данных, читаемые человеком или простые / текстовые данные, все равно используйте базу данных в памяти и сохраняйте ее как .csv при сохранении на диск.
Использование внешних файлов может работать хорошо, если вы выполняете пакетную обработку и сосредоточены только на операциях APPEND - я делаю это регулярно, и достигаю пропускную способность, которая просто невозможна с реляционной базой данных.
Вы также можете эффективно использовать файловую систему, если вы используете один файл на запись, и ваши операции ограничены MAP / INSERT / DELETE / REPLACE; и никогда не пытайтесь ОБНОВИТЬ. Но опять же, если мне нужно сделать обновления или корреляции, или любой из ряда других интересных запросов, я использую базу данных.
Наконец, вы можете использовать файловую систему, если ваши операции выполняются в режиме DUMP / RESTORE из структур данных памяти в один файл. В этом случае вы должны использовать любую стандартную библиотеку постоянства XML для вашей платформы и просто выполнить RESTORE при запуске приложения и DUMP при выходе или периодическом сохранении. Практически, как только вы перейдете к нескольким файлам, вы должны снова просмотреть базу данных и ORM.
В конечном счете, если вы не имеете дело с очень небольшим количеством данных; или вы имеете дело с большим объемом данных (не менее 100 миллионов записей), придерживайтесь базы данных.