¿Cuáles son las principales diferencias entre MongoDB y MySQL?
MySQL
MySQL es un sistema de gestión de bases de datos relacionales (RDBMS) de código abierto, popular y de uso gratuito, desarrollado por Oracle. Al igual que otros sistemas relacionales, MySQL almacena datos utilizando tablas y filas, aplica la integridad referencial y utiliza un languaje del query estructurado (SQL) para acceder a los datos. Cuando los usuarios necesitan recuperar datos de una base de datos MySQL, deben construir un query de SQL que una varias tablas para crear la vista de los datos que requieren.
Los esquemas de base de datos y los modelos de datos deben definirse con antelación, y los datos deben coincidir con este esquema para poder almacenarse en la base de datos. Este enfoque rígido para almacenar datos ofrece cierto grado de seguridad, pero lo sacrifica a cambio de flexibilidad. Si es necesario almacenar un nuevo tipo o formato de datos en la base de datos, debe realizarse una migración de esquema, lo cual puede volverse complejo y costoso a medida que aumenta el tamaño de la base de datos.
MongoDB
MongoDB también es de uso gratuito y de código abierto; sin embargo, sus principios de diseño difieren de los sistemas relacionales tradicionales. MongoDB, al que a menudo se hace referencia como una base de datos no relacional o NoSQL, adopta un enfoque muy diferente para almacenar datos, representando la información como una serie de documentos similares a JSON (en realidad almacenados como JSON binario, o BSON), a diferencia de las tablas y filas de los sistemas relacionales.
En MongoDB, los documentos consisten en una serie de pares clave-valor de distintos tipos, incluidos arreglos y documentos anidados; sin embargo, la diferencia principal es que la estructura de los pares clave-valor en una colección determinada puede variar de un documento a otro. Este enfoque más flexible es posible porque los documentos son autodescriptivos.
