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