Servidores de bases de datos MariaDB Vs MySQL: Comparación en profundidad

Servidores de bases de datos MariaDB Vs MySQL: Comparación en profundidad

Una competencia sana puede sacar lo mejor de las organizaciones. Basta con mirar a compañías como Coca-Cola y Pepsi o General Motors y Ford, todas ellas obsesionadas con superar a las demás mientras el cliente cosecha las recompensas.

En este artículo, comparamos otro caso en el que la competencia ha traído la innovación entre MySQL y su “derivada” MariaDB.

¿Quién utiliza estas bases de datos?

MySQL: MySQL ha generado un gran número de seguidores desde que se inició en 1995. Algunas organizaciones que utilizan MySQL incluyen GitHub, US Navy, NASA, Tesla, Netflix, WeChat, Facebook, Zendesk, Twitter, Zappos, YouTube, Spotify.

MariaDB: MariaDB está siendo utilizado por muchas grandes corporaciones, distribuciones de Linux, y más. Algunas organizaciones que usan MariaDB incluyen Google, Craigslist, Wikipedia, archlinux, RedHat, CentOS y Fedora.

¿Qué pasa con la estructura de la base de datos?

MySQL: MySQL es un sistema de gestión de bases de datos relacionales de código abierto (RDBMS). Al igual que todas las demás bases de datos relacionales, MySQL utiliza tablas, restricciones, triggers, roles, procedimientos almacenados y vistas como los componentes centrales con los que trabaja. Una tabla consta de filas, y cada fila contiene un mismo conjunto de columnas. MySQL utiliza claves primarias para identificar de forma única cada fila (también conocida como registro) en una tabla, y claves externas para asegurar la integridad referencial entre dos tablas relacionadas.

MariaDB: Como MariaDB es una bifurcación de MySQL, la estructura de la base de datos y los índices de MariaDB son los mismos que los de MySQL. Esto le permite cambiar de MySQL a MariaDB sin tener que alterar sus aplicaciones ya que los datos y las estructuras de datos no tendrán que cambiar.

Esto significa que:

  • Los archivos de datos y de definición de tablas son compatibles.
  • Los protocolos, estructuras y APIs del cliente son idénticos.
  • Los conectores MySQL funcionarán con MariaDB sin modificaciones.
  • Incluso las herramientas de línea de comandos son similares a mysqldump y mysqladmin que todavía tienen los nombres originales, lo que permite a MariaDB ser un sustituto sin cita previa.

Para asegurarse de que MariaDB mantiene la compatibilidad, los desarrolladores de MariaDB hacen una fusión mensual del código MariaDB con el código MySQL. Incluso con esto, hay algunas diferencias entre MariaDB y MySQL que podrían causar algunos problemas de compatibilidad menores.

¿Qué tipos de replicación/agrupación están disponibles?

La replicación es un proceso que le permite tener múltiples copias de los datos copiados automáticamente de las bases de datos “maestras” a “esclavas”. Esto tiene múltiples beneficios, y pocos de ellos son:

  • Backups
  • Repartir la carga para mejorar el rendimiento
  • Puede trabajar en una de las bases de datos esclavas, lo que no perjudica el rendimiento de la base de datos principal en caso de consultas prolongadas e intensivas.

La agrupación en clúster, en el contexto de las bases de datos, se refiere al uso del almacenamiento compartido y a la colocación de más interfaces de base de datos en él. Los servidores frontales comparten una dirección IP y un nombre de red de clúster que los clientes utilizan para conectarse, y deciden entre ellos quién está actualmente a cargo de atender las solicitudes de los clientes.

MySQL: La replicación en MySQL es una replicación asíncrona unidireccional en la que un servidor actúa como maestro y otros como esclavos. Puede replicar todas las bases de datos, bases de datos seleccionadas o incluso tablas seleccionadas dentro de una base de datos.

MySQL Cluster es una tecnología que proporciona clustering y auto-sharding para el sistema de gestión de bases de datos MySQL.

Internamente MySQL Cluster utiliza replicación síncrona a través de un mecanismo de confirmación de dos fases para garantizar que los datos se escriben en múltiples nodos. Esto contrasta con lo que normalmente se conoce como “Replicación MySQL”, que es asíncrona.

MariaDB: MariaDB también ofrece replicación maestro-maestro y maestro-esclavo. MariaDB utiliza el Cluster Galera para multi-master. A partir de MariaDB 10.1, Galera se incluye con MariaDB. Habilitar el clustering es tan simple como activar los parámetros de configuración.

¿Quién está actualmente detrás de las bases de datos?

En 2010, MySQL fue adquirida por Oracle Corporation. En ese momento, uno de los desarrolladores originales, Michael “Monty” Widenius, consideró que la Corporación Oracle tenía un conflicto de intereses entre MySQL y su base de datos Oracle.

En respuesta a esto, decidió crear un tenedor del proyecto llamado MariaDB. Desde entonces, ha habido una sana competencia entre MySQL y MariaDB que ha llevado a una gran innovación. Dado que Oracle está respaldando a MySQL y tiene una base sólida, sigue siendo el líder. Sin embargo, MariaDB ofrece algunas razones convincentes para que la gente quiera cambiar de base de datos.

MySQL: MySQL fue fundada originalmente por MySQL AB en 1994 por una empresa sueca creada por David Axmark, Allan Larsson y Michael “Monty” Widenius. La primera versión de MySQL fue lanzada en 1995. En 2008, Sun Microsystems adquirió MySQL AB. En 2010, Sun Microsystems fue adquirida por Oracle.

MySQL es actualmente mantenido por Oracle Corporation.

MariaDB: El día que Oracle anunció la compra de MySQL, Michael “Monty” Widenius tomó varios desarrolladores de MySQL e inició MariaDB, una bifurcación de MySQL desde ese punto.

La empresa MariaDB está gestionada por MariaDB Corporation AB. El servidor de la comunidad MariaDB está gestionado por la Fundación MariaDB.

La Fundación MariaDB utiliza un modelo de gobierno comunitario. Eligieron separar los lados comercial y de código abierto del negocio.

¿Quién proporciona apoyo?

MySQL: MySQL ofrece servicios de soporte técnico como parte del soporte de por vida de Oracle. El equipo de soporte contiene desarrolladores de MySQL e ingenieros de soporte que ofrecen soporte 24/7, así como correcciones de errores, parches y versiones de mantenimiento.

Oracle ofrece asistencia técnica MySQL Premier, asistencia técnica ampliada y asistencia técnica permanente en función de sus necesidades.

MariaDB: MariaDB ofrece ingenieros de soporte que se dice que son expertos tanto en MariaDB como en MySQL. Ofrecen soporte 24 horas al día, 7 días a la semana, con una suscripción empresarial para sistemas de producción de misión crítica.

¿Qué pasa con los conectores de base de datos?

MySQL: MySQL ofrece una variedad de conectores de base de datos incluyendo C, C++, Delphi, Perl, Java, Lua,.NET, Node.js, Python, PHP, Lisp, Go, R, D, y Erlang.

MariaDB: MariaDB ofrece una variedad de conectores de base de datos incluyendo ADO.NET, C, C++, D, Java, JavaScript, ODBC, Perl, PHP, Python, Ruby, y Visual Studio plug-in.

¿Qué base de datos es la adecuada para su negocio?

MySQL: MySQL es una base de datos probada que tiene un gran número de seguidores en todo el mundo. The Oracle Corporation continúa manteniendo, mejorando y dando soporte al producto.

MariaDB: MariaDB proporciona un reemplazo sin cita previa para las organizaciones que ejecutan MySQL. Está gestionado por la Fundación MariaDB, lo que permite a la gente contribuir con el producto de código abierto y la documentación.

Ambos productos pueden seguir siendo divergentes en el futuro. Para muchas organizaciones, la cuestión fundamental se reduce a: ¿Con cuál se siente más cómodo?

¿Preferiría una corporación más grande como Oracle Corp que maneja MySQL, o se sentiría más cómodo con una solución abierta como MariaDB?

¿Necesita un servidor de bases de datos MariaDB o MySQL? Conozca aquí cómo podemos ayudarle

Imagen: Tammy Duggan-Herd on Unsplash