Diferencias entre MySQL y MariaDB

Diferencias entre MySQL y MariaDB.

Al mencionar MySQL y MariaDB, hablamos de los sistemas de gestión de bases de datos más usados a nivel mundial. La competencia es sana siempre que sea constructiva, pero no siempre fue así, o tal vez si, lo explicamos un poco.

Ulf Michael Widenius (conocido como Monty), lanzó en 1996 junto a otros colaboradores la primera versión de MySQL. Hablamos del primer sistema de gestión de bases de datos de código abierto, puedes imaginar que supuso un bombazo con rotundo éxito a nivel mundial.

Poco tardaron en llover las ofertas de compra, pero en MySQL imponen sus condiciones. En 2008 MySQL se formaliza su venta a Sun Microsystems (1.000 millones de dólares), pero se obliga a Sun a comprometerse sobre la comercialización de MySQL, siempre será open source. Además, Monty y su equipo pasarán a formar parte de Sun Microsystem como responsables del desarrollo del sistema de gestión de bases de datos. Estamos en 2008.

Poco duró la feliz alianza, muy poco. Apenas unos meses después, en enero de 2009, el gigante Oracle Corporation se hace con Sun Microsystem a cambio de 5.750 millones de dólares, al día siguiente Monty y su equipo de desarrolladores se marchan para montar su propia empresa.

Ríos de tinta se han escrito sobre el porqué se marcharon de la nueva adquisición de Oracle, yo creo que es evidente. Oracle Corporation pagó un sobrecoste del 42% por acción del valor real, algo realmente sospechoso e inusual. El nuevo propietario tampoco quiso comprometerse sobre MySQL como 100% open, a la vista lo tenemos ya que actualmente las versiones mejoradas de MySQL tienen un alto coste.

Mi opinión personal: Oracle no solo se quitó de un plumazo una competencia real, sino que se quedó con los desarrollos del sistema de gestión de bases de datos orientados a internet (sitios web). Poco después de la adquisición, Oracle lanzó la nueva versión de su base de datos Oracle con propiedades integradas específicas para sitios web. En la siguiente agregaron más de 400 funciones nuevas, que como denunció publicamente Ulf Michael provenían de MySQL y sus proyectos futuros.

Monty y su equipo de desarrolladores crean una nueva empresa, y nace MariaDB, una bifurcación de MySQL de alto rendimiento en la que confían la gran mayoría de distribuciones linux actuales. Los creadores originales de MySQL expusieron sus motivos del porqué nace MariaDB.

  • Los principales creadores de MySQL deben permanecer juntos, es la única forma posible de mantener un sistema de gestión de bases de datos, excelente.
  • Fomentar la continuidad del desarrollo por parte de la comunidad.
  • Garantizar que siempre esté disponible MySQL de forma gratuita.

Una vez conocemos un poco de la historia de MySQL, vemos sus principales diferencias.

 

Diferencias entre MySQL y MariaDB

Quien usa MariaDB y MySQL

Vemos algunos de los principales clientes de los dos sistemas de bases de datos.

MariaDB

Grandes corporaciones y los gigantes de linux utilizan MariaDB, podemos señalar las más conocidas: Google, Craigslist, Wikipedia, archlinux, RedHat, CentOS, Fedora, Suse, Ubuntu, AWS, 1and1, BlaBlaCart, Nokia, Samsung, y muchos más.

MySQL

Muchas de las grandes empresas que usan MySQL, no tienen fácil su migración a otro sistema. La lista es larga: GitHub, US Navy, NASA, Tesla, Netflix, WeChat, Facebook, Zendesk, Twitter, Zappos, YouTube, Spotify, y muchos más.

 

Compatibilidad entre MySQL y MariaDB

MySQL: MySQL es un sistema de gestión de bases de datos relacionales (RDBMS). Al igual que otros sistema similares usa tablas, restricciones, disparadores, roles, procedimientos almacenados y vistas como componentes centrales de trabajo. Cada tabla se compone de filas, y cada fila contiene un mismo conjunto de columnas. MySQL utiliza claves primarias para identificar cada fila (llamado registro) de la tabla, y claves externas para verificar la integridad referencial de dos tablas relacionadas.

MariaDB: Como MariaDB es una bifurcación de MySQL, la estructura de la base de datos y los índices son los mismos. Esto permite migrar de MySQL a MariaDB sin tener que modificar nuestras aplicaciones, los datos y estructuras serán los mismos.

La conclusión es:

  • Los archivos de configuración de datos y las tablas son compatibles.
  • Las estructuras, protocolos y las API de cliente son las mismas.
  • Los conectores MySQL también trabajan con MariaDB.

El equipo de desarrollo de MariaDB intenta mantener una compatibilidad directa, mensualmente se compara y combina el código MariaDB con el código MySQL. Incluso la mayoría de comandos son los mismos, como mysqldumpmysqladmin.Aun así, existen diferencias entre MariaDB y MySQL que podrían llegar a causar problemas de compatibilidad mínimos.

La migración de MySQL a MariaDB por parte de potencias empresariales como, Samsung o Google, no sentó nada bien en el seno de Oracle. Ahora mismo intentan diferenciarse de forma gradual, y un buen ejemplo lo encontramos en el diccionario de datos internos que se desarrolló para MySQL 8, que altera la forma en que los metadatos se guardan y utilizan. MariaDB no tiene esa función, y esto puede ser el principio del fin de la compatibilidad a nivel de archivo de datos entre MySQL y MariaDB.

Principales diferencias entre MariaDB y MySQL

Principales diferencias entre MariaDB y MySQL

 

Rendimiento y los índices

Es evidente que el sistema de índices mejoran el rendimiento de la base de datos, ya que permite al servidor localizar y recuperar filas de manera mucho más rápida. Pero ojo, los índices pueden llegar a sobrecargar el servidor de bases de datos, se deben usar con prudencia.

A pesar de lo dicho, el índice es indispensable. Si no tuviéramos índice, una búsqueda comenzaría por la primera fila de una tabla y correlativamente seguiría buscando hasta encontrar el objeto. El tiempo de espera se podría demorar en exceso.

Como norma general los índices MySQL y MariaDB (PRIMARY KEY, UNIQUE, INDEX y FULLTEXT) se guardan como B-trees (Árbol-B). Existen excepciones como índices para tipos de datos espaciales, estos usan Árboles-R. También se admiten índices hash, y el motor InnoDB que utiliza listas invertidas para los índices FULLTEXT.

 

Diferencias en la sintaxis

Las consultas son exactamente las mismas, en este apartado no tenemos nada que reprochar. Como ejemplo vemos cómo seleccionar registros de la tabla clientes.

# MariaDB
SELECT * 
FROM clientes;

# MySQL
SELECT * 
FROM clientes;

 

Sistemas compatibles con MariaDB y MySQL

Dónde y cómo instalar MySQL

El sistema MySQL está escrito en C y C ++, y tiene binarios para los sistemas: Microsoft Windows, OS X, Linux, AIX, BSDi, FreeBSD, HP-UX, IRIX, NetBSD, Novell Netware y otros.

Puedes descargar MySQL desde su página oficial de descargas. Existe mucha documentación e instrucciones para los sistemas operativos más utilizados, puedes descargarlos aquí.

Dónde y cómo instalar MariaDB

MariaDB está escrito en C, C ++, Bash y Perl, y tiene soporte para los siguientes sistemas: Microsoft Windows, Linux, OS X, FreeBSD, OpenBSD, Solaris, y muchos más.

Puedes descargar MariaDB desde su página oficial, pero al ser un sistema tan extendido en la comunidad linux, seguro que la encontraras en los repositorios de tu distribución linux. Su documentación oficial es amplia, pero mi recomendación es que acudas a la comunidad de tu distro, seguro que podrás aclarar tus dudas, ademas y no menos importante en tu idioma materno.

Recuerda que MariaDB se diseño para ser el reemplazo comunitario de MySQL, el proceso de desinstalar MySQL e instalar MariaDB es bastante simple. Nunca olvides que después de ejecutar la operación debes usar mysql_upgrade.

 

Agrupación y replicación

Qué es la agrupación

La agrupación en clúster de bases de datos, es el uso de almacenamiento compartido y más servidores front-end. Los servers front-end comparten una dirección IP y el nombre de la red del clúster, que los usuarios utilizan. Se calcula cual de ellos atiende la solicitud de clientes actual.

Qué es la replicación

La replicación es el proceso que nos permite tener varias copias generadas automáticamente, de las bases de datos. Se conocen como «maestras» y «esclavas» y sus beneficios son importantes.

  • Mejor soporte.
  • Mejora considerable del rendimiento al tener la carga distribuida.
  • Permite operar en una bases de datos esclava, sin reducir el rendimiento de la base de datos principal (cargas intensivas o de larga duración).
MySQL

La replicación en MySQL es asincrónica y unidireccional, un servidor actúa como maestro y otros como esclavos. Permite replicar todas las bases de datos, bases de datos específicas, e incluso una sola tabla.

MySQL Cluster proporciona el soporte para los clústeres compartidos, incluye la auto-fragmentación para un correcto mantenimiento del sistema de gestión MySQL.

MariaDB

MariaDB también ofrece replicación maestro-maestro y maestro-esclavo. A partir de MariaDB 10.1, Galera se incluye como clúster en MariaDB. Habilitar la agrupación es muy fácil, tan solo debemos configurar unos pocos parámetros.

 

Conectores de bases de datos

Los conectores son estándares de acceso, que tienen como objetivo hacer posible el acceso a los datos de una base de datos.

Conectores de MySQL

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

Conectores de MariaDB

MariaDB también tiene una gran variedad de conectores, como: ADO.NET, C, C ++, D, Java, JavaScript, ODBC, Perl, PHP, Python, Ruby y Visual Studio.

 

De donde viene el nombre de MySQL, MariaDB y MaxDB

Curiosa anécdota, jajaj. Todo es idea del creador original, está claro que hablamos de Michael Widenius (Monty) y de sus hijos.

  • MySQL: la primera hija de Monty se llama «My», un curioso nombre tailandés.
  • MaxDB: MaxDB es otro sistema de gestión creado por el mismo autor, el nombre se debe a su hijo «Max».
  • MariaDB: así se llama la hija de Monty (de su segundo matrimonio), «Maria».

 

Canales de Telegram: Canal SoloLinux – Canal SoloWordpress

Espero que este articulo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales.

 

8 Comentarios

  1. Nando
    22/02/2020
    • Sergio G.B.
      22/02/2020
  2. Henry
    22/02/2020
    • Sergio G.B.
      22/02/2020
  3. Manex
    23/02/2020
    • Sergio G.B.
      23/02/2020
  4. Julio
    24/02/2020
    • Sergio G.B.
      24/02/2020

Agregar comentario