josejfernandez
Software Architect
- Registrado
- 1 Ago 2012
- Mensajes
- 527
- Puntos
- 63
Por último comentar sobre la base de datos (escribo varios posts porque son temas distintos, aun perteneciendo al mismo hilo).
Dices que crees que es lento. No, no lo es, salvo que estés esperando una concurrencia brutal con miles de usuarios ejecutando consultas no cacheables (escrituras, básicamente) contra la base de datos. Piensa que con una estrategia de caché apropiada, el SELECT se hace una vez y se sirve miles desde memoria, hasta que se invalide por contener datos obsoletos tras realizar inserciones.
Si esperas cargas muy pesadas de escritura... Eso ya sería otra historia. Pero hablamos de mucha concurrencia, no te pienses que por tener a 20 usuarios simultáneamente lanzando INSERTS cada 5 segundos vas a saturar un servidor.
Si no utilizas una base de datos (da igual si es relacional o no) y sólo usas memoria, perderás cualquier dato a la mínima de cambio. Si utilizas ficheros, el rendimiento no será mejor, y será un infierno migrar a base de datos cuando lo necesites (que lo necesitarás). Además, no vas a poder implementar acceso a ficheros de forma eficaz y eficiente mejor que como se ha hecho en un SGBD moderno (en serio, no). Y cuando tus datos crezcan, la base de datos será tu única alternativa. Así que es, desde el principio, el camino a seguir: usa una base de datos.
¿Cuál? Depende de tu entorno. Lo normal es utilizar MariaDB en Linux, pero en Windows podrás utilizar SQL Server.
Dices que crees que es lento. No, no lo es, salvo que estés esperando una concurrencia brutal con miles de usuarios ejecutando consultas no cacheables (escrituras, básicamente) contra la base de datos. Piensa que con una estrategia de caché apropiada, el SELECT se hace una vez y se sirve miles desde memoria, hasta que se invalide por contener datos obsoletos tras realizar inserciones.
Si esperas cargas muy pesadas de escritura... Eso ya sería otra historia. Pero hablamos de mucha concurrencia, no te pienses que por tener a 20 usuarios simultáneamente lanzando INSERTS cada 5 segundos vas a saturar un servidor.
Si no utilizas una base de datos (da igual si es relacional o no) y sólo usas memoria, perderás cualquier dato a la mínima de cambio. Si utilizas ficheros, el rendimiento no será mejor, y será un infierno migrar a base de datos cuando lo necesites (que lo necesitarás). Además, no vas a poder implementar acceso a ficheros de forma eficaz y eficiente mejor que como se ha hecho en un SGBD moderno (en serio, no). Y cuando tus datos crezcan, la base de datos será tu única alternativa. Así que es, desde el principio, el camino a seguir: usa una base de datos.
¿Cuál? Depende de tu entorno. Lo normal es utilizar MariaDB en Linux, pero en Windows podrás utilizar SQL Server.