Experiencias y sugerencias con NoSql

  • Autor Autor lumber
  • Fecha de inicio Fecha de inicio
L

lumber

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Quien puede contarme sus experiencias o sugerencias con el NoSql
 
Te aconsejaría investigar estos dos soluciones. Mongodb y Redis.

Cada una tiene sus ventajas e inconvenientes, y no siempre es bueno verlas como solución para mysql.

A modo muy simple Redis trabaja con memoria y se comporta genial para hacer contadores, exclusiones de datos, colas...

Debes tener en cuenta que los datos no se están guardando constantemente a disco, y ante caídas puedes perder parte de la información. También para hacer copias a disco cada pocos minutos es aconsejable tener el doble de RAM que ocupe la base de datos. Hay algunas opciones para que todo se guarde a disco, pero también va en contra del rendimiento, aunque esto siempre depende del proyecto.

MongoDB, esta mas orientado al almacenamiento de grandes volúmenes desnormalizados. Con lo cual los accesos para recuperar información pueden ser muy rápidos para recuperarlos. En algunos casos he visto que algunas personas lo ven como una alternativa a mysql, pero no tienen en cuenta las necesidades de espacio que suele tener y es muy posible quedarte sin espacio, y si este desaparece hacer un backup puede ser un locura. Puede convertirse en un gran devorador de espacio. La solución de replica set, es muy potente y fácil de usar para las lecturas.

Características como el sharding automático son muy interesantes, pero un mal sharding te puede arruinar la vida.. porque es prácticamente imposible hacer un rollback.

En los proyectos que he participados, solemos utilizar lo mejor de cada uno para lo mejor que esta pensado. Lo mejor es tener claro que limitaciones puede tener cada uno para tu proyecto.

Imáginate un proyecto similar a Facebook.

Una posible distribución sería tener los contadores de me gusta en Redis.

Los ids de los post de un usuario en mongoDB en un json, para minimizar la necesidad de espacio que prereservará el sistema por el distinto tamaño que tendrá cada documento de la colección, y la información de los post en un mysql al que se accede utilizando estos indices.

(Es un ejemplo 🙂, por supuesto lo dicho anteriormente, debes analizar el proyecto para ver donde se queda corto cada uno de los sistemas de bbdd)
 
Atrás
Arriba