MySQL es una de las bases de datos de código abierto más populares del mundo, según DB-Engines. Su primera versión se lanzó en 1995 y, desde entonces, se encuentra en desarrollo continuo, lo que la convierte en una base de datos relacional muy popular, incluso en la actualidad. MySQL debe su éxito a un ecosistema que consta de una amplia variedad de ediciones de código abierto y comerciales. MySQL se usa ampliamente en entornos locales y en la nube. Los principales proveedores de servicios en la nube para MySQL son Google Cloud, Oracle, Amazon Web Services (AWS) y Microsoft Azure.
En el mercado actual, hay una gran variedad de opciones de MySQL disponibles que expanden MySQL mediante funciones de optimización, escalabilidad, agrupamiento en clústeres, recuperación ante desastres y mucho más. Las dos bases de datos principales que se compilaron mediante la bifurcación de MySQL y que están activas actualmente son MariaDB y Percona Server para MySQL.
Oracle desarrolla y mantiene MySQL Community Edition y Enterprise Edition. Enterprise Edition incluye asistencia técnica de Oracle y, además, algunas funciones adicionales, como supervisión empresarial de MySQL, autenticación, PAM, seguridad mejorada, escalabilidad y rendimiento mejorados, copia de seguridad empresarial, auditoría empresarial, administración de clústeres, reducción de subprocesos y mucho más.
Los fundadores de MySQL continuaron creando MariaDB, con la garantía de que se mantendrá como código abierto. De hecho, algunas características de MySQL se lanzaron antes en MariaDB que en MySQL, como la compatibilidad con JSON, la replicación de varias fuentes y la replicación de subprocesos en paralelo. Algunos de los principales beneficios clave de MariaDB en comparación con MySQL son los siguientes:
Una empresa llamada Percona desarrolla y mantiene el servidor de Percona para MySQL. Percona realizó una gran cantidad de trabajo a lo largo de los años junto con MySQL para optimizarlo y, además, implementar características nuevas. Estos son algunos de los principales beneficios de usar Percona en MySQL:
Las necesidades de una aplicación determinan qué base de datos elegir, dado que las diferentes bases de datos tienen características únicas que se orientan a casos prácticos particulares. Por ejemplo, si tu aplicación necesita estadísticas, puedes usar clickhouse en Percona o en el almacén de columnas en MariaDB. Sin embargo, esa opción no está disponible en MySQL. Del mismo modo, si quieres usar la función del conjunto de subprocesos, que no está disponible en la versión de la comunidad de MySQL, debes elegir la función Enterprise MySQL o la función del conjunto de subprocesos de código abierto en Percona y MariaDB.
Una base de datos en la nube es una base de datos creada para ejecutarse en un entorno de nube híbrida o pública a fin de ayudar a organizar, almacenar y administrar datos dentro de una organización. Las bases de datos en la nube se pueden ofrecer como una base de datos como servicio (DBaaS) administrada o implementada en una máquina virtual (VM) basada en la nube y autoadministrada por un equipo de TI interno. Estos son algunos de los principales proveedores de servicios en la nube para MySQL administrado:
Google Cloud
Google Cloud ofrece una versión de MySQL alojada en una máquina virtual, que el usuario tendría que administrar por su cuenta, y Cloud SQL, que es una oferta completamente administrada.
Amazon Web Services (AWS)
Amazon Web Services (AWS) ofrece una opción alojada en VM para MySQL y una solución completamente administrada en forma de RDS. AWS también tiene una oferta de Aurora, que una oferta de MySQL compatible con MySQL con características adicionales.
Azure SQL Database
Azure ofrece dos modelos de implementación para MySQL similares a los de otros proveedores de servicios en la nube: una opción de máquina virtual con forma de MySQL en VMs de Azure y una versión completamente administrada en forma de Azure Database para MySQL.
Oracle Cloud
Oracle ofrece la capacidad de alojar MySQL en sus máquinas virtuales. También incluyó una nueva oferta completamente administrada llamada Servicio de base de datos MySQL de HeatWave.
Digital Ocean
Digital Ocean también puede alojar MySQL en sus máquinas virtuales. También ofrece una opción de hosting completamente administrado para MySQL.
Muchas empresas trabajaron para ampliar MySQL y crearon productos que proporcionan conmutación por error y alta disponibilidad para la base de datos de MySQL. Algunas son herramientas directas que se usan con MySQL y otras son modificaciones al código fuente de MySQL que dan como resultado la creación de productos independientes, que proporcionan clústeres de alta disponibilidad o con varios elementos superiores. Estas son algunas de las soluciones de HA y escalabilidad populares de MySQL:
Un clúster de InnoDB consta de al menos tres instancias de MySQL Server y proporciona funciones de escalamiento y alta disponibilidad. Los clústeres de InnoDB están compuestos por MySQL Shell, MySQL Router y los servidores MySQL con replicación de grupo. Puedes encontrar más detalles en el capítulo 23 Clúster de InnoDB.
El clúster de Percona XtraDB es una solución de agrupamiento en clústeres síncrona que proporciona alta disponibilidad, replicación paralela y características de escalabilidad. El clúster de Percona XtraDB incluye la herramienta de administrador ProxySQL que configura de forma automática los nodos del clúster de Percona XtraDB mediante ProxySQL. Puedes encontrar más detalles en Clúster de Percona XtraDB.
El clúster de MariaDB Galera es un clúster de varias instancias principales virtualmente síncrono para MariaDB que proporciona alta disponibilidad y funciones de escalabilidad. Tiene la tecnología de los servidores de MariaDB y la biblioteca del proveedor de wsrep de Galera. Proporciona características como la unión automática de nodos, la replicación paralela real, la topología de varias instancias principales y más. Puedes encontrar más detalles en Clúster de MariaDB Galera.
El clúster de Tungsten proporciona un único paquete simple, que tiene todos los componentes principales necesarios para implementar y administrar la base de datos de MySQL como clústeres. Proporciona una solución de agrupamiento geográfico en clústeres. Consiste en Tungsten Manager, Replicator, Connector, nodos de datos y un panel. Puedes encontrar más detalles en Clúster de Continuent Tungsten.
MariaDB Xpand proporciona SQL distribuido que cumple con ACID, alta disponibilidad, tolerancia a errores, escalamiento de escritura y escalamiento horizontal para cargas de trabajo transaccionales. MariaDB Xpand es un componente de MariaDB Enterprise. Consta de uno o más nodos de MaxScale y tres o más nodos de Xpand. Puede encontrar más información en MariaDB Xpand.
ScaleArc es un software de balanceo de cargas de base de datos que proporciona alta disponibilidad. Puedes encontrar más detalles en ScaleArc.
Vitess tiene funciones de fragmentación integradas que te permiten hacer crecer tu base de datos sin agregar una lógica de fragmentación a tu aplicación para proporcionar alta disponibilidad y escalabilidad. Puedes encontrar más detalles en Vitess.
Las herramientas de MySQL están presentes en todos los formatos: basados en la Web, la interfaz de línea de comandos (CLI) y la interfaz gráfica de usuario (GUI). MySQL ofrece una amplia gama de herramientas comerciales y de código abierto para el diseño, el desarrollo, la administración, la copia de seguridad, la supervisión del rendimiento y las alertas de las bases de datos.
Estas son algunas herramientas de supervisión de MySQL populares con GUI:
Percona Monitoring and Management, Prometheus, MySQL Enterprise Monitor, New Relic, SolarWinds, HeidiSQL, AppDynamics, Datadog y SQLyog.
Estas son algunas herramientas populares de administración, desarrollo o utilidad:
Detalles de herramientas populares:
Algunas otras herramientas de supervisión importantes con grafos para analizar las tasas de error, el tráfico y los patrones de consulta con mecanismos de alerta son New Relic, Zabbix, Cortex, Prometheus y Grafana.
La ejecución de una base de datos a través de un clúster de Kubernetes mediante imágenes de contenedor de Docker se está volviendo popular. Ayuda a administrar la base de datos mediante código, implementaciones sencillas y rápidas, protección de datos, aislamiento de la aplicación y usabilidad de recursos compartidos. Básicamente, el sistema de la base de datos puede aprovechar todas las ventajas de Docker. También hay algunos operadores de Kubernetes disponibles para MySQL. Sin embargo, hay muchas mejoras para esta área.
Descubre cómo Cloud SQL para MySQL te ayuda a innovar. Ver la documentación
Comienza a desarrollar en Google Cloud con el crédito gratis de $300 y los más de 20 productos del nivel Siempre gratuito.