Estoy desarrollando un producto que, como parte de su operación, debe rastrear una gran cantidad de archivos / directorios. La idea es almacenar información estadística en una base de datos y luego, al arrancar, crear relojes para cada archivo. Los archivos que cambian se pondrán en cola (en la base de datos) para una sincronización de grupo a una base de datos remota. Se sincronizarán en orden de prioridad, un número entre 1-10.
Información sobre la base de datos:
- <100,000 entradas de información estadística
- Toda la base de datos leída en el arranque, solo es necesaria la ruta del archivo
- Los archivos en cola tendrán un campo de prioridad (no es necesario buscar nada más)
- Las inserciones pueden ser lentas
He encontrado un par de bases de datos que creo que funcionarán, pero no estoy seguro de cuál sería el mejor:
- Redis : almacena la ruta del archivo como clave, los datos estadísticos como valor; la cola sería una lista
- MongoDB : más opciones de consulta que Redis, pero aún así rápido
Estoy pensando que una base de datos NoSQL sería la mejor solución aquí, ya que no hay demasiada lógica relacional y el tamaño total de los datos no es demasiado grande (algo así como <100 mb, más cercano a <30 mb). Observé SQLite porque parece ser lo suficientemente simple como para incrustarlo en una aplicación instalable.
Dado que esta es una aplicación distribuida para usuarios finales y no un servidor de alta carga, la base de datos no tiene que soportar muchos usuarios simultáneos. La principal prioridad aquí es encontrar una base de datos cuyo modelo tenga más sentido.
Entonces, la pregunta, ¿qué base de datos sería más aplicable para esta situación?
Además, ¿hay otras bases de datos que tengan más sentido para una aplicación como esta?