Я разрабатываю продукт, который, как часть его работы, должен отслеживать большое количество файлов / каталогов. Идея состоит в том, чтобы сохранить статистическую информацию в базе данных, а затем при загрузке создать часы для каждого файла. Изменяемые файлы будут поставлены в очередь (в базе данных) для синхронизации группы с удаленной базой данных. Они будут синхронизированы в порядке приоритета, число от 1 до 10.
Информация о базе данных:
- <100 000 записей статистики
- Вся база данных читается при загрузке, нужен только путь к файлу
- У файлов в очереди будет приоритетное поле (больше ничего не нужно искать)
- Вставки могут быть медленными
Я нашел пару баз данных, которые, я думаю, будут работать, но я не уверен, что будет лучше:
- Redis - сохранить путь к файлу в качестве ключа, данные статистики в качестве значения; очередь будет список
- MongoDB - больше вариантов запросов, чем в Redis, но все еще быстро
Я думаю, что база данных NoSQL была бы лучшим решением здесь, так как здесь не слишком много реляционной логики и общий объем данных не слишком велик (что-то вроде <100 мб, ближе к <30 мб). Я посмотрел на SQLite, потому что он кажется достаточно простым для встраивания в устанавливаемое приложение.
Поскольку это распределенное приложение для конечных пользователей, а не сервер с высокой нагрузкой, база данных не должна поддерживать много одновременных пользователей. Основным приоритетом здесь является поиск базы данных, модель которой имеет наибольшее значение.
Таким образом, вопрос, какая база данных будет наиболее подходящей для этой ситуации?
Кроме того, есть ли другие базы данных, которые имеют больше смысла для такого приложения?