Comparando MySQL 8 y MariaDB 10.3

Examinaremos aspectos de rendimiento, seguridad así características principales. Enumeraremos todos los aspectos que deben considerarse antes de elegir o migrar.

¿Quién usa MySQL o MariaDB?

 

Tanto MySQL como MariaDB publican una gran lista de clientes que usan su base de datos como su infraestructura de datos primaria.

Para MySQL: Facebook, Github, YouTube, Twitter, PayPal, Nokia, Spotify, Netflix…

Para MariaDB: Aponte Systems, DBS, Suse, Ubuntu….


MySQL vs MariaDB

 


Probablemente vale la pena mencionar muchas características nuevas y emocionantes, como las funciones de Windows, los roles o las expresiones de tabla comunes (CTE), pero no se mencionarán en este artículo. Nos gusta comparar los dos motores de base de datos.

 

  • Tipo de datos JSON: a partir de la versión 5.7, MySQL es compatible con un tipo de datos JSON nativo definido por RFC 7159 que permite un acceso eficiente a los datos en documentos JSON (Notación de Objetos de JavaScript).

  •         MariaDB decidió no implementar esta mejora ya que afirman que no es parte del estándar SQL. En cambio, para admitir la replicación desde MySQL, solo definieron un alias para JSON, que en realidad es una columna LONGTEXT. MariaDB afirma que no hay una diferencia de rendimiento significativa entre los dos, pero no se realizaron puntos de referencia recientemente para respaldar esa afirmación.

  •         Vale la pena señalar que tanto MySQL como MariaDB ofrecen diferentes funciones relacionadas con JSON que permiten un acceso, análisis y recuperación más fácil de los datos JSON.

  •         Autenticación predeterminada: en MySQL 8.0, caching_sha2_password es el complemento de autenticación predeterminado en lugar de mysql_native_password. Esta mejora debería mejorar la seguridad mediante el uso del algoritmo SHA-256.

  •         MySQL Shell: MySQL Shell es un avanzado cliente de línea de comandos y editor de código para MySQL. Además de SQL, MySQL Shell también ofrece capacidades de scripting para JavaScript y Python. No podrá acceder a los servidores MariaDB usando mysqlsh, ya que MariaDB no admite el protocolo MySQL X.

  •         Cifrado: MySQL cifra los registros de rehacer / deshacer (cuando está configurado para hacerlo), mientras que no cifra los espacios de tablas temporales o los registros binarios. MariaDB, por otro lado, admite el cifrado de registros binarios y el cifrado temporal de tablas.

  •         Administración de claves: MariaDB ofrece un complemento de administración de claves de AWS listo para usar. MySQL también proporciona varios complementos para la administración de claves, pero solo están disponibles en la edición Enterprise.

  •         Esquema del sistema: MySQL 8.0 incluye el esquema del sistema, un conjunto de objetos que ayuda a los administradores de bases de datos e ingenieros de software a interpretar los datos recopilados por el esquema de rendimiento. Los objetos de esquema del sistema pueden usarse para casos de uso de diagnóstico y optimización. MariaDB no tiene esta mejora incluida.

  •         Validate_password: el objetivo del complemento validate_password es probar las contraseñas y mejorar la seguridad. MySQL tiene este complemento habilitado de forma predeterminada, mientras que MariaDB no lo hace.

  •         Súper solo lectura: MySQL mejora las capacidades de solo lectura al proporcionar el modo súper solo lectura. Si la variable del sistema read_only está habilitada, el servidor permite las actualizaciones del cliente solo de los usuarios que tienen el privilegio SUPER. Si la variable del sistema super_read_only también está habilitada, el servidor prohíbe las actualizaciones del cliente incluso de los usuarios que tienen SUPER. Ver la descripción de la read_only.

  •         Columnas invisibles: esta función, que está disponible en MariaDB, aunque no en MySQL, permite crear columnas que no están enumeradas en los resultados de una instrucción SELECT *, ni tampoco se les debe asignar un valor en una instrucción INSERT cuando su nombre no se menciona en la declaración.

  •         Threadpool - MariaDB admite grupos de subprocesos de conexión, que son más efectivos en situaciones donde las consultas son relativamente cortas y la carga está vinculada a la CPU (cargas de trabajo OLTP). En la edición comunitaria de MySQL, el número de subprocesos es estático, lo que limita la flexibilidad en estas situaciones. El plan empresarial de MySQL incluye las capacidades de agrupación de hilos.

 

 

 

Rendimiento y Benchmarking



A lo largo de los años, se ejecutaron muchas pruebas de rendimiento en los motores MySQL y MariaDB. No creemos que haya una respuesta a la pregunta "¿cuál es más rápido, MySQL o MariaDB?". Depende mucho del caso de uso, las consultas, el número de usuarios y conexiones, y muchos otros factores que deben considerarse.

Estas son las pruebas de referencia más recientes que encontramos en línea, lo que podría proporcionar alguna indicación de cuál es el mejor desempeño. Asegúrese de leer los detalles de cada una de las pruebas de referencia (cómo se realizó la prueba, en qué entorno, qué hardware, qué se probó, qué no se probó, etc.).

    Prueba de referencia de MySQL 8.0 (InnoDB) y MariaDB 10.3.7 (MyRocks)
    Rendimiento de MariaDB 10.1 y MySQL 5.7 en hardware básico
    El rendimiento de MySQL 8.0 y MariaDB 10.3.5 y el impacto de UTF8

Cualquiera que sea el cambio principal que esté planificando: migrar de un tipo de base de datos (o motor) a otro, de un sistema operativo a otro, de servidores locales a la nube, creo que debería asegurarse de realizar sus propias pruebas, planificar sus propias proceso de referencia de base de datos y realizar las pruebas de estrés pertinentes.

 

Incompatibilidades entre MySQL y MariaDB

La documentación de MariaDB enumera cientos de incompatibilidades entre las bases de datos MySQL y MariaDB, en diferentes versiones. La principal conclusión de esta documentación es que no puede confiar en una migración fácil de un tipo de base de datos a otro.

La mayoría de los administradores de bases de datos esperaban que MariaDB se mantuviera como una rama de MySQL, por lo que será muy fácil migrar entre los dos. Para las últimas versiones, ese ya no es el caso. Durante mucho tiempo, MariaDB es en realidad una bifurcación de MySQL, lo que significa que debe pensar un poco cuando migra de uno a otro.

¿Fue útil la respuesta?

 Imprimir éste Artículo