Ecosistema de MySQL

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.

Tipos de MySQL

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.

Community Edition y Enterprise Edition de 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.

MariaDB

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:

  • Introducción de nuevos motores de almacenamiento, como ColumnStore para analíticas, Amazon S3 para archivar tablas en AWS, Aria Engine, que es una versión optimizada de MyISAM, MyRocks para aplicaciones de alta compresión y con más tráfico, Cassandra, SphinxSE y más
  • Capacidad para ejecutar consultas en paralelo
  • Agrupamiento de conversaciones, que está disponible en Enterprise Edition de MySQL, pero no en la edición Community Edition
  • Router gratuito llamado MaxScale
  • Una solución con varios recursos superiores: Galera Cluster

Percona

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: 

  • Se ha mejorado la búsqueda en todo el texto de InnoDB, se ha mejorado el motor de almacenamiento Memory y el mecanismo de vaciado, se han integrado más funciones hash y de síntesis, y ahora el servicio es compatible con el cifrado en el espacio de tablas InnoDB, los registros binarios y los archivos temporales
  • Se ha introducido un búfer de escritura doble paralelo para optimizarlo
  • Una herramienta XtraBackup para copias de seguridad dinámicas con opciones de copia de seguridad completas e incrementales
  • Compatibilidad con motores de almacenamiento MyRocks y Toku
  • Instrumentos avanzados para solucionar problemas, por ejemplo, según el rendimiento por tabla, índice, cliente, usuario y conversación
  • Autenticación PAM y registro de auditoría, que están disponibles en Enterprise Edition de MySQL, pero no en la edición Community Edition
  • Pt-toolkit, un servicio de utilidades desarrollado por Percona que ofrece muchas opciones para administrar MySQL

¿Qué tipo te conviene?

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.

MySQL en la nube

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.

Soluciones de alta disponibilidad o de clústeres

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:

  • Replicación de grupos y clúster InnoDB de MySQL

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. Para ver más información, consulta esta página.

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. Para ver más información, consulta esta página.

  • MariaDB Galera 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. Para ver más información, consulta esta página.

  • Tungsten Clustering de Continuent

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. Para ver más información, consulta esta página.

  • MariaDB Xpand (anteriormente, ClustrixDB) 

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. Para ver más información, consulta esta página.

  • ScaleArc

ScaleArc es un software de balanceo de carga de bases de datos que ofrece alta disponibilidad. Para ver más información, consulta esta página.

  • Vitess

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. Para ver más información, consulta esta página.

  • Herramientas que proporcionan replicación estándar para la conmutación por error: MHA, ProxySQL, MaxScale y Orchestrator
  • Servicios basados en la nube como Google Cloud, Oracle, AWS y Azure ofrecen alta disponibilidad interna para MySQL

Herramientas de MySQL

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:

  • Basadas en la GUI: MySQL Workbench, HeidiSQL, DBeaver, dbForge Studio, Navicat y SQLyog
  • Basada en la CLI: Percona Toolkit y Ghost

Información detallada sobre las herramientas más populares:

  • MySQL Workbench: propiedad de MySQL, disponible en las versiones Community Edition y Enterprise Edition con funciones avanzadas
  • Percona Monitoring and Management (PMM): desarrollado por Percona, disponible de forma gratuita
  • HeidiSQL: desarrollado por Ansgar Becker y disponible de forma gratuita
  • Percona Toolkit: desarrollado por Percona, y disponible de forma gratuita
  • Toad: propiedad de Quest; es una herramienta de pago
  • phpMyAdmin: herramienta gratuita de software libre y basada en la Web para administrar MySQL
  • DBeaver: herramienta desarrollada por la comunidad de software libre, disponible en las versiones Community Edition y Enterprise Edition, con funciones avanzadas mantenidas por DBeaver
  • Navicat: propiedad de CyberTech; es una herramienta de pago
  • SQLyog: propiedad de Webyog; es una herramienta de pago

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.

Ejecutar MySQL con contenedores o Kubernetes

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.

¿Todo listo para probar MySQL?

Google Cloud te ofrece una opción de MySQL totalmente gestionado: Cloud SQL para MySQL

Descubre cómo puede ayudarte a innovar Cloud SQL para MySQL. Ver documentación

Ve un paso más allá

Empieza a crear en Google Cloud con 300 USD en crédito gratis y más de 20 productos Always Free.

Google Cloud
  • ‪English‬
  • ‪Deutsch‬
  • ‪Español‬
  • ‪Español (Latinoamérica)‬
  • ‪Français‬
  • ‪Indonesia‬
  • ‪Italiano‬
  • ‪Português (Brasil)‬
  • ‪简体中文‬
  • ‪繁體中文‬
  • ‪日本語‬
  • ‪한국어‬
Consola
Google Cloud