Historias
Slashboxes
Comentarios
 

Login Barrapunto

Login

[ Crear nueva cuenta ]

Encuesta

Encuesta ¿Vas a seguir utilizando MySQL?
Mientras Wordpress, Joomla, Drupal,... no migren, no me queda otro remedio
Sí, aunque deje de ser abierto
Desde que Oracle compró a Sun no utilizo MySQL
Voy a migrar a postgreSQL o a MariaDB
Estoy pensando en usar Oracle o SQL Server
En mis proyectos uso un ORM, así que estoy preparado
¿Qué es MySQL? ¿Quién es Oracle?
¿Base de datos? Utilizo archivos de texto
[ Resultado | Encuestas ]
Comentarios:71 | Votos:210

¿Qué base de datos NoSQL me recomendáis?

editada por mig21 el Lunes, 26 Septiembre de 2011, 12:00h   Printer-friendly   Email story
desde el dept. escalando-ando
fmfnet nos cuenta: «Tengo entre manos un proyecto para el que, por el tema de la escalabilidad y el schema-free, tengo claro que debo usar una base de datos NoSQL. Tras probar unas cuantas me he decantado por mongodb, pero aquí me viene la duda; mongodb es una base de datos orientada a documentos y la aplicación que tengo que hacer manejará una base de datos convencional, entendiendo como tal una colección de varios millones de registros pequeños, con predominio de campos numéricos y con campos de texto que rara vez pasarán de los doscientos caracteres. La pregunta es si mongodb es una buena elección o si para una base de datos no documental es preferible usar algún otro motor, como por ejemplo Cassandra

Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • En la web de Mongo

    (Puntos:2)
    por xlopez (22256) el Lunes, 26 Septiembre de 2011, 12:31h (#1290392)
    ( http://alacantilado.blogspot.com/ )
    MongoDB (from "humongous") is a scalable, high-performance, open source, document-oriented database.

    Si tu base de datos no és document-oriented olvídate de Mongo.

    [ Responder ]
  • por xlopez (22256) el Lunes, 26 Septiembre de 2011, 12:36h (#1290394)
    ( http://alacantilado.blogspot.com/ )
    http://wiki.apache.org/cassandra/ [apache.org]:
    Cassandra is a highly scalable, eventually consistent, distributed, structured key-value store

    ¿Tu base de datos ustiliza pares clave-valor o es una base de datos convencional?

    [ Responder ]
  • Pero... ¿Estás seguro que el rendimiento que te da un postgres no te es suficiente?

    Tirar por un nosql, puede hacer el desarrollo de nueva funcionalidad más tedioso, sobretodo si no lo conoces.

    ¿Más importante que tirar por nosql... estás seguro que vas a tener tanta demanda?

    Si no es indiscrepcción, ¿de que versa el proyecto?
    [ Responder ]
  • "Tema de la escalabilidad"

    (Puntos:1, Interesante)
    por pobrecito hablador el Lunes, 26 Septiembre de 2011, 14:38h (#1290405)
    Salvo que estés montando un nuevo Google, Facebook o similar, no entiendo cuál es el "tema de la escalabilidad".

    Y si estuvieras montando algo que necesitara eso, no lo preguntarías aquí.

    Ergo no sabes ni lo que necesitas. Mi consejo: Pregunta "¿Qué debería usar para almacenar datos para un proyecto como XXX?" o mejor aún "¿Qué software/librerías/bases de datos usásteis en proyectos como XXX?".

    O aún mejor, dale tu trabajo a alguien que se lo merezca.
    [ Responder ]
  • Comparativa

    (Puntos:2, Informativo)
    por sammael (16347) el Lunes, 26 Septiembre de 2011, 15:23h (#1290411)
    ( http://barrapunto.com/ | Última bitácora: Lunes, 15 Agosto de 2011, 15:32h )
    Aqui tienes una pequenia comparativa de diferentes BBDD NoSQL: Cassandra vs MongoDB vs CouchDB vs Redis [barrapunto.com]

    En cuanto a cual usar, depende muchisimo de lo que necesitas, te recomiendo que mires dos o tres y hagas un prototipo con cada una a ver si cumplen tus requisitos, por mi parte te puedo hacer las siguientes recomendaciones:

    Si no necesitas orientacion a documentos, Membase esta muy bien (mientras los indices te quepan en memoria) y lo de poder actualizarla en caliente y el cliente web son grandes bazas. Tengo una instancia en el portatil con 25 millones de registros (de un par de pruebas que hice) y se mantiene tranquilamente en las 5K operaciones por segundo.

    Si necesitas transacciones, puedes mirar tambien Redis, eso y la posibilidad de usarlo como mensajeria (permite definir topics y hacer publish/subscribe) la hacen muy interesante, pero los datos te tienen que caber en memoria. En mi empresa tenemos un par de aplicaciones con Redis, precisamente por esas dos cosas (transacciones y pub/sub).

    Otra con la que solo he jugado un poco pero que tambien recomendaria echarle un vistazo es CouchDB, tiene muy buena pinta (pero como digo, solo he jugado un poco, nada serio).

    De todas formas, no deseches MongoDB tan rapido, algun equipo de mi empresa la ha usado y en general estan muy contentos (aunque me han dicho que cosas como el autosharding dan algunos problemas).
    --

    Dale fuego a un hombre y estara caliente un dia, prendele fuego y estara caliente el resto de su vida.
    [ Responder ]
    • Re:Comparativa de CapHaddock (Puntos:2) Lunes, 26 Septiembre de 2011, 15:35h
      • Re:Comparativa de sammael (Puntos:1) Lunes, 26 Septiembre de 2011, 15:47h
  • MongoBD sin duda

    (Puntos:5, Interesante)
    por bigplac2 (20370) el Lunes, 26 Septiembre de 2011, 17:52h (#1290426)
    Lo que si que lleva razón la gente es que mysql te va a ser suficiente. Los servidores ya andan por 24GB de memoria y por si no te bastasen cosa que dudo, hay mil técnicas de escalar sql.
    Esa no es razón para usar mongobd, como tampoco para no hacerlo. Ambas te funcionaran perfectamente, con sus manias particulares de cada una.
    Mi esperiencia es que llevo usando mongo en produccion desde hace años en sitios de alta carga y no me ha dado más problemas que mysql pero tampoco menos.
    MongoDB es la bd no sql más cercana a una relacional. Yo la elegi precisamente por eso, por que al ser tan parecida a mysql me simplificaba la portabilidad.
    Si quieres usarla a modo relacional, tan solo create clases usando el habitual patron de diseño de abstraccion de datos que te oblige a meter todos los valores del objeto y ya está.
    MongoDB es entre 10 y 100 veces más rápida y potente que mysql o postgre en pruebas reales hechas por mi. Haz siempre los test tu. No se porque la gente mira benchmarks trucadisimos con lo facil que es montar una prueba real parecida a lo que será tu aplicacion. Y según lo que te salga pues ya decides.

    Que sea tan brutalmente rápida esta muy bien, pero ten en cuenta que esa velocidad se paga y mucho en no tener transacciones ni integridad referencial. Esto es lo único importante que debes valorar, el resto, que es document-oriented, inmadura, son...
    Mongodb te obliga a hacer siempre busquedas simples. Esto es lo que yo amo de mongodb, porque le impide al programador meter la query kilometrica en la aplicación que es por donde siempre vienen los problemas despues, cuando la bbdd es pequeña bien y un año despues cuando crece pues el marron para otro.
    Pero a veces apetece meter una join infernal que sabes que solo se ejecutará una vez al año y con mongo no podras.
    Monta las clases abstractas tales que te permitan conmutar entre una y otra, y ya decidiras. Asi de paso tu código será mas estructurado y robusto. Las tablas peligrosas, sobre mysql con transacciones y el resto a mongo. O mongo como capa de cache.
    Un consejo, desactiva el javascript de mongo, se purista y ten cuidado porque mongo distingue letras y numeros, sql no. Algun susto me he llevado yo por no hacer el cast.
    [ Responder ]
  • por elgrancajuna (17624) el Jueves, 29 Septiembre de 2011, 11:39h (#1290633)
    ( http://barrapunto.com/ )
    Hola. Recuerdo que estoy ya se preguntó hace tiempo en barrapunto. Busca a ver si todavía están las respuestas por ahí.
    --
    Saludos.

    El Gran Cajuna.
    ---------------
    [ Responder ]
  • por tunic (293) el Lunes, 10 Octubre de 2011, 13:18h (#1291501)
    ( http://barrapunto.com/ | Última bitácora: Domingo, 04 Abril de 2010, 23:48h )
    Respecto a Drupal solo decir que admite MariaDB sin problemas:
    http://drupal.org/requirements#database [drupal.org]
    [ Responder ]
  • Re:Recomendación

    (Puntos:2)
    por xlopez (22256) el Lunes, 26 Septiembre de 2011, 12:27h (#1290391)
    ( http://alacantilado.blogspot.com/ )
    Ni de coña pincho en un enlace acortado.

    A saber donde acabo.

  • Re:Recomendación

    (Puntos:3, Informativo)
    por MaGaO (6286) <magaoNO@SPAMbigfoot.com> el Lunes, 26 Septiembre de 2011, 20:33h (#1290447)
    ( http://barrapunto.com/ | Última bitácora: Domingo, 04 Septiembre de 2011, 11:08h )
    Si en algún momento apuntó a un goatse, ahora apunta a MySQL [mysql.com].
    --
    Marcos (cualquier parecido con la coincidencia es pura realidad)
    • Re:Recomendación de pobrecito hablador (Puntos:1) Martes, 04 Octubre de 2011, 12:40h
  • por pleyades (544) el Lunes, 26 Septiembre de 2011, 23:01h (#1290450)
    ( http://barrapunto.com | Última bitácora: Viernes, 08 Abril de 2011, 14:08h )

    Programar bases de datos con consultas SQL es mucho más sencillo que otras opciones. Y además hay bases de datos para dar y elegir, con sus librerías clientes y enlaces en lenguajes desde el C hasta el Python y Ruby, pasando por pascal, java y C++. Si es una cosa simple, con SQlite puedes hacer maravillas

    Si utilizas noSQL, te complicas la vida. Osea, que salvo que tu sistema necesite altas velocidades por tener miles y miles de consultas simultáneas y necesitar una respuesta casi instantánea, vaya, eres facebook, google o algo así, usar noSQL es matar moscas a cañonazos.

    • Re:Mal consejo de pleyades (Puntos:2) Sábado, 01 Octubre de 2011, 11:08h
    • 1 respuesta por debajo de tu umbral de lectura actual.
  • 11 respuestas por debajo de tu umbral de lectura actual.