MySQL es una de las bases de datos de software libre más populares del mundo, según DB-Engines. Su primera versión se lanzó en 1995 y, desde entonces, ha estado en desarrollo continuo. Por eso, sigue siendo una base de datos relacional muy popular hoy en día. MySQL debe su éxito a un ecosistema compuesto por una amplia gama de ediciones comerciales y de software libre. MySQL se utiliza tanto en entornos on‐premise como en la nube. Los principales proveedores de servicios en la nube para MySQL son Google Cloud, Oracle, Amazon Web Services (AWS) y Microsoft Azure.
Hay una amplia variedad de tipos de MySQL disponibles en el mercado que amplían las capacidades de MySQL añadiendo funciones para optimizar, escalar, agrupar, garantizar la recuperación tras fallos y más. Las dos bases de datos principales que se crearon al bifurcar MySQL y que están activas son MariaDB y Percona Server for MySQL.
Oracle desarrolla y mantiene las ediciones Community Edition y Enterprise Edition de MySQL. Enterprise Edition incluye asistencia técnica proporcionada por Oracle y cuenta con otras funciones adicionales, como monitorización empresarial de MySQL, autenticación PAM, seguridad reforzada, rendimiento y escalabilidad mejorados, copias de seguridad de empresas, auditorías empresariales, gestión de clústeres empresariales, grupos de conversaciones y más.
Los fundadores de MySQL consiguieron crear MariaDB con la garantía de que seguiría siendo de software libre. De hecho, algunas funciones de MySQL se lanzaron primero en MariaDB, como la compatibilidad con JSON, la replicación de varias fuentes y la replicación de hilos en paralelo. Estas son algunas de las principales ventajas de MariaDB frente a MySQL:
Una empresa llamada Percona desarrolla y mantiene Percona Server for MySQL. Percona ha hecho mucho trabajo a lo largo de los años en MySQL para optimizarlo e incorporar nuevas funciones. Estas son algunas de las principales ventajas de usar Percona en lugar de MySQL:
Las necesidades de las aplicaciones determinan qué bases de datos debes elegir, ya que cada base de datos tiene funciones únicas orientadas a casos prácticos concretos. Por ejemplo, si tu aplicación necesita analíticas, puedes usar ClickHouse en Percona o ColumnStore en MariaDB, pero ninguna de ellas está disponible en MySQL. Del mismo modo, si quieres usar la función para agrupar conversaciones, que no está disponible en la versión Community Edition de MySQL, debes elegir Enterprise Edition de MySQL o la función de software libre para agrupar conversaciones en Percona y MariaDB.
Una base de datos en la nube es una base de datos diseñada para ejecutarse en un entorno de nube pública o híbrida, lo que ayuda a organizar, almacenar y gestionar los datos de una empresa. Las bases de datos en la nube se pueden ofrecer como bases de datos como servicio (DBaaS) gestionadas o desplegarse en máquinas virtuales basadas en la nube y gestionadas personalmente por los equipos de TI. Estos son los principales proveedores de servicios en la nube para servicios gestionados de MySQL:
Google Cloud
Google Cloud ofrece tanto una versión de MySQL alojada en una máquina virtual, que los usuarios deberían gestionar por su cuenta como Cloud SQL, una solución totalmente gestionada.
Amazon Web Services (AWS)
Amazon Web Services (AWS) ofrece una opción alojada en una máquina virtual para MySQL y una solución totalmente gestionada en forma de RDS. Además, cuenta con Aurora, una solución de MySQL compatible con MySQL y que incluye otras funciones.
Base de datos de Azure SQL
Azure ofrece dos modelos de despliegue para MySQL que son similares a los de otros proveedores de la nube: la opción de una máquina virtual (MySQL en las máquinas virtuales de Azure) y una versión totalmente gestionada (Azure Database for MySQL).
Nube de Oracle
Oracle ofrece la capacidad de alojar MySQL en sus máquinas virtuales. Además, desarrolló una opción totalmente gestionada llamada MySQL HeatWave Database Service.
DigitalOcean
DigitalOcean también puede alojar MySQL en sus máquinas virtuales. Además, ofrece una opción de alojamiento totalmente gestionada para MySQL.
Muchas empresas han trabajado para ampliar MySQL y crear productos que proporcionen conmutación por error y alta disponibilidad para la base de datos MySQL. Algunos son herramientas directas que se usan con MySQL y otros, modificaciones del código fuente de MySQL que conducen a la creación de productos independientes, que proporcionan alta disponibilidad o clústeres con varios recursos superiores. Estas son algunas de las soluciones de alta disponibilidad y escalabilidad de MySQL más populares:
Los clústeres InnoDB constan de al menos tres instancias de MySQL Server, y proporcionan funciones de alta disponibilidad y escalado. Los clústeres InnoDB se componen de servidores MySQL Shell, MySQL Router y MySQL con replicación de grupos. Puedes obtener más información en el capítulo 23 de la página sobre el clúster InnoDB.
Percona XtraDB Cluster es una solución de clústeres síncrona que ofrece alta disponibilidad, replicación en paralelo y funciones de escalabilidad. Percona XtraDB Cluster incluye la herramienta de administración de ProxySQL que configura automáticamente los nodos Percona XtraDB Cluster mediante ProxySQL. Puedes consultar más información en Percona XtraDB Cluster.
MariaDB Galera Cluster es un clúster multiprimario síncrono para MariaDB que ofrece funciones de alta disponibilidad y escalabilidad. Utiliza la tecnología de los servidores de MariaDB y la biblioteca de proveedores wsrep de Galera. Proporciona características como la unión automática de nodos, la replicación en paralelo verdadera y la topología multiprimario, entre otras. Puedes encontrar más información en el clúster de MariaDB Galera.
Tungsten Cluster proporciona un único paquete sencillo, que cuenta con todos los componentes principales necesarios para desplegar y gestionar la base de datos de MySQL como clústeres. Proporciona una solución de clústeres geográfica. Además de los nodos de datos, incluye Tungsten Manager, Replicator, Connector y Dashboard. Puedes obtener más información en el clúster Continuent Tungsten.
MariaDB Xpand ofrece SQL distribuido que cumple con los requisitos de ACID, alta disponibilidad, tolerancia a fallos, escalado de escritura y escalado horizontal en las cargas de trabajo transaccionales. MariaDB Xpand es un componente de MariaDB Enterprise. Consiste en uno o varios nodos MaxScale y tres o más nodos Xpand. Puedes consultar más información en MariaDB Xpand.
ScaleArc es un software de balanceo de carga de bases de datos que ofrece alta disponibilidad. Puedes consultar más información en ScaleArc.
Vitess dispone de funciones integradas de fragmentación que te permiten ampliar tu base de datos sin añadir una lógica de fragmentación a la aplicación para proporcionar una alta disponibilidad y escalabilidad. Puedes consultar más información en Vitess.
Hay herramientas de MySQL de todo tipo: basadas en la Web y que forman parte de la interfaz de línea de comandos (CLI) o de la Interfaz gráfica de usuario (GUI). MySQL cuenta con una amplia variedad de herramientas de software libre y comerciales para diseñar, desarrollar, administrar y crear copias de seguridad de bases de datos, así como para monitorizar el rendimiento y crear alertas sobre ellas.
Estas son algunas de las herramientas más populares de monitorización de la GUI de MySQL:
Percona Monitoring and Management, Prometheus, MySQL Enterprise Monitor, New Relic, SolarWinds, HeidiSQL, AppDynamics, Datadog y SQLyog.
Estas son algunas de las herramientas más populares de administración, desarrollo o utilidad:
Información detallada sobre las herramientas más populares:
Otras herramientas de monitorización importantes con gráficos para analizar las tasas de error, el tráfico y los patrones de consultas con mecanismos de alerta son New Relic, Zabbix, Cortex, Prometheus y Grafana.
Actualmente, ejecutar una base de datos en un clúster de Kubernetes con imágenes de contenedores Docker está ganando popularidad. Ayuda a gestionar la base de datos mediante implementaciones de código sencillas y rápidas y, además, contribuye a la protección de datos, el aislamiento de la aplicación y usabilidad de los recursos compartidos. Básicamente, el sistema de bases de datos puede aprovechar todas las ventajas de Docker. También hay algunos operadores de Kubernetes disponibles para MySQL. No obstante, todavía se pueden llevar a cabo muchas mejoras en este ámbito.
Descubre cómo puede ayudarte a innovar Cloud SQL para MySQL. Ver documentación
Empieza a crear en Google Cloud con 300 USD en crédito gratis y más de 20 productos Always Free.