MongoDB o MySQL, ¿Cual es mejor?

Como bien es sabido por muchos estudiantes, ingenieros y especialistas del gremio informático; las bases de datos no estructuradas son cada vez más difundidas. Sin embargo, debido a la larga trayectoria que han tenido las bases de datos estructuradas, cabe que nos preguntemos: ¿Cuál es mejor, MongoDB o MySQL?

Antes de responder esta interesante pregunta, cabe destacar algunas similitudes entre MongoDB y MySQL, entre ellas podemos mencionar las siguientes:

  • Tanto MongoDB como MySQL han sido desarrolladas bajo licencia y/o concepto de código abierto.
  • MongoDB y MySQL han sido desarrolladas en C++; aunque MySQL también tiene módulos en Lenguaje C.
  • MySQL y Mongo DB son multiplataforma y cuentan con códigos binarios para los sistemas operativos Linux, Windows OS X y Solaris.

Sin embargo, estas características similares no lo son todo; se deben tener en cuenta muchas otras cosas más cuando queremos escoger un motor de base de datos que de verdad se adapte por mucho a nuestro proyecto, sobre todo si tienen que ver con transacciones contables o registros hipersensibles.

 

Características propias de MySQL

Aunque hay muchas características propias de MySQL, solamente nos enfocaremos en las que inicialmente no poseía. Esto, debido a que, poco a poco, cada vez son menos los elementos de los carece la mayor base de datos relacional actualmente utilizada; en las últimas versiones podemos presenciar las siguientes:

  • Subconjunto grande del lenguaje SQL. Razón por la que dispone de muchas extensiones que ya son estándares e incluidas en las versiones más recientes.
  • Posibilidad de instanciar y procesar Transacciones, lo que la convierte en una base de datos no solo relacional, sino una base de datos transaccional y de claves foráneas.
  • Disponibilidad en grandes cantidades de plataformas, y aunque anteriormente habíamos mencionado este asunto en particular; sí que es digno de mencionar que tiene muchas plataformas más que otras bases de datos, entre ellas podemos indicar:
    • SunOS
    • Tru64
    • NetBSD
    • SCO OpenServer.
    • SCO UnixWare.
    • Open VMS.
    • Free BSD.
    • HP-UX, entre otros (Disponible en 20 Sistemas Operativos para ser más exactos y sin contar con las versiones y distribuciones de cada uno).
  • Cuenta con la posibilidad de elegir qué mecanismo de almacenamiento utilizar; esto es especialmente importante, cuando hay que escoger entre varios atributos de calidad, como por ejemplo: Velocidad de Operación, Soporte Físico, Distribución Geográfica, Capacidad de Almacenamiento y Necesidad de Transacciones.
  • Conexión segura.
  • Replicación en línea de la base de datos para contingencias.
  • Búsqueda e indexación de campos de texto.

Características propias de MongoDB

Tomando en cuenta que MongoDB es un sistema de base de datos nuevo en comparación con MySQL, también cuenta con algunas características útiles a la hora de escoger una base de datos a implementar. Entre las principales características, destacan las siguientes:

  • Consultas Ad hoc.
  • Indexación primaria y secundaria similar al de bases de datos relacionales.
  • Replicación parecida a la de MySQL; sin embargo hay que mencionar que es del tipo primario-secundario no más. A este tipo de réplicas se le conoce como réplica set.
  • Cuenta con un sistema de balanceo de cargas transaccionales y de almacenamiento no muy común en los sistemas de bases de datos. Se le conoce como: Sharding (Fragmentación).
  • Almacenamiento de archivos.
  • Ejecución de Javascript del lado del servidor; algo que solo MongoDB
  • Cuenta con un sistema de MapReduce; el cual consiste en el procesamiento por lotes de los datos y algunas otras operaciones, como las de agregación.

¿Cuál es mejor, MongoDB o MySQL?

Tomando en cuenta las características anteriores, seguro que ya podrás tomar tu propia decisión basada en las bondades de cada uno; no obstante, no te precipites, también sería bueno analizar cuáles son las características que no tiene MongoDB por tratarse de un motor de base de datos nuevo.

Por qué no utilizar MongoDB en un proyecto Macro

El asunto es fácil, MongoDB tiene varias fallas a la hora de responder a las necesidades de un proyecto grande e importante. Esto es debido a los serios problemas de consistencia, durabilidad, falta de recurrencia en un mismo documento (Tabla para la jerga de base de datos relacionales), carencia de métodos para la verificación de escritura y problemas de escalabilidad.

Los puntos en contra de MongoDB expresados en el párrafo anterior, dejan bastante claro que no es posible confiar en ella. En resumidas cuentas, le falta ser una base de datos ACID, que significa en español: Atomicidad, Consistencia, Aislamiento y Durabilidad. Atributos de calidad, que no posee hasta los momentos, el sistema de base de datos basada en documentos más popular y utilizada en la actualidad.

Desarrollador a tiempo completo, amante del buen rol y los juegos de plataforma. Mi tiempo libre me gusta invertirlo para ver series y malas peliculas