Ir a

Ecosistema de MySQL

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.

Tipos de MySQL

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.

MySQL Community Edition y Enterprise Edition

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.

MariaDB

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:

  • Introducción a los nuevos motores de almacenamiento, como ColumnStore para estadísticas, motor de S3 para archivar tablas en AWS S3, Aria Engine, que es una versión optimizada de MyISAM, MyRocks para aplicaciones de alta compresión y mayor tráfico, Cassandra, SphinxSE y más
  • capacidad de ejecución paralela de consultas
  • reducción de subprocesos, que está disponible en MySQL Enterprise Edition, pero no en Community Edition
  • router gratuito llamado MaxScale
  • una solución para varios elementos superiores: clúster de Galera

Percona

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: 

  • búsqueda de texto completo de InnoDB mejorada, motor de almacenamiento de memoria mejorado y mecanismo de limpieza, más funciones de hash y resumen, compatibilidad con la encriptación integrada en el espacio de tabla de InnoDB, registros binarios y archivos temporales
  • introducción de un búfer de escritura doble paralelo para optimizarlo
  • una herramienta XtraBackup para copias de seguridad en caliente con opciones de copia de seguridad incrementales y completas
  • compatibilidad con los motores de almacenamiento MyRocks y Toku
  • instrumentos de solución de problemas avanzados, como los contadores de rendimiento por tabla, por índice, por cliente, por usuario y por subproceso.
  • Autenticación de PAM y registro de auditoría, que están disponibles en la edición Enterprise de MySQL, pero no en la edición Community
  • Pt-toolkit, desarrollado por Percona, un servicio de utilidad que tiene muchas opciones para administrar MySQL

¿Qué opción elegir?

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.

MySQL en la nube

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.

Soluciones de alta disponibilidad (HA) o del clúster

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:

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

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. Aquí puedes consultar más detalles al respecto.

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. Aquí puedes consultar más detalles al respecto.

  • Clúster de MariaDB Galera

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. Aquí puedes consultar más detalles al respecto.

  • Clúster de Tungsten continuo

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. Aquí puedes consultar más detalles al respecto.

  • MariaDB Xpand (anteriormente conocido como ClustrixDB) 

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. Aquí puedes consultar más detalles al respecto.

  • ScaleArc

ScaleArc es un software de balanceo de cargas de base de datos que proporciona alta disponibilidad. Aquí puedes consultar más detalles al respecto.

  • Vitess

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. Aquí puedes consultar más detalles al respecto.

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

Herramientas de MySQL

Las herramientas de MySQL están presentes en todos los formatos: 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:

  • Basado en GUI: MySQL Workbench, HeidiSQL, DBeaver, dbForge Studio, Navicat, SQLyog
  • Basado en la CLI: Kit de herramientas de Percona, ghost

Detalles de herramientas populares:

  • MySQL Workbench, propiedad de MySQL, disponible en Community Edition y Enterprise Edition, con características avanzadas
  • Percona Monitoring and Management (PMM) desarrollado por Percona y disponible de forma gratuita
  • HeidiSQL: desarrollado por Ansgar Becker, disponible de forma gratuita
  • Percona Toolkit fue desarrollado por Percona y se encuentra disponible de forma gratuita
  • Toad: pertenece a Quest y es una herramienta pagada
  • phpMyAdmin: herramienta gratuita basada en la Web y de código abierto para administrar MySQL
  • DBeaver: desarrollado por la comunidad de código abierto, disponible en Community Edition y Enterprise Edition con funciones avanzadas que mantiene DBeaver
  • Navicat: propiedad de CyberTech, es una herramienta pagada
  • SQLyog: propiedad de Webyog y también es una herramienta pagada

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.

Ejecuta MySQL con contenedores / Kubernetes

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.

¿Todo listo para probar MySQL?

Google Cloud tiene una oferta completamente administrada de MySQL, Cloud SQL para MySQL
Más información sobre Cloud SQL

Descubre cómo Cloud SQL para MySQL te ayuda a innovar. Ver la documentación