Ir para

Ecossistema do MySQL

O MySQL é um dos bancos de dados de código aberto mais conhecidos do mundo, de acordo com o DB-Engines. A primeira versão dele foi lançada em 1995 e está em desenvolvimento contínuo desde então, o que o torna um banco de dados relacional muito conhecido. O MySQL deve seu sucesso a um ecossistema composto de uma ampla variedade de edições comerciais e de código aberto. O MySQL é muito usado tanto de maneira local quanto na nuvem. Os principais provedores de serviços de nuvem para o MySQL são o o Google Cloud, Oracle, Amazon Web Services (AWS) e o Microsoft Azure.

Variações do MySQL

Atualmente, há um grande número de variações do MySQL disponíveis no mercado que adicionam recursos para otimização, escalonabilidade, clustering, recuperação de desastres e muito mais. Os dois principais bancos de dados criados pela ramificação do MySQL e atualmente ativos são o MariaDB e Percona Server for MySQL.

MySQL Community Edition e Enterprise Edition

A Oracle desenvolve e mantém o MySQL Community Edition e o Enterprise Edition. O Enterprise Edition inclui o suporte técnico fornecido pela Oracle, além de alguns recursos extras, como o monitoramento empresarial do MySQL, autenticação PAM, segurança aprimorada, desempenho e escalonabilidade aprimorados, backup corporativo, auditoria corporativa, gerenciamento de cluster corporativo, pooling de linhas de execução e muito mais.

MariaDB

Os fundadores do MySQL criaram o MariaDB com a garantia de que ele manterá o código aberto. Alguns recursos do MySQL apareceram primeiro no MariaDB antes de serem lançados no MySQL, como a compatibilidade com o JSON, replicação de várias origens e replicação de linha de execução paralela. Alguns dos principais benefícios do MariaDB em relação ao MySQL são:

  • introdução de novos mecanismos de armazenamento, como o ColumnStore para análises, mecanismo S3 para arquivar tabelas no AWS S3, Aria Engine, que é uma versão otimizada do MyISAM, MyRocks para aplicativos de alta compactação e tráfego maior, Cassandra, SphinxSE, entre outros;
  • capacidade de execução paralela de consultas;
  • pooling de linhas de execução, que está disponível no MySQL Enterprise Edition, mas não no Community Edition;
  • é gratuito com o uso do roteador MaxScale; e
  • é uma solução de vários pais: Galera Cluster

Percona

Uma empresa chamada Percona desenvolve e mantém o Percona Server para MySQL. Ao longo dos anos, a Percona trabalhou muito para otimizar o MySQL e introduzir novos recursos. Veja alguns dos principais benefícios de usar o Percona em vez do MySQL: 

  • pesquisa de texto completa InnoDB, mecanismo de armazenamento de memória e de limpeza aprimorados, mais funções de hash/resumo, suporte à criptografia integrado no espaço de tabela do InnoDB, registros binários, e arquivos temporários;
  • introdução de um buffer de gravação dupla paralela para otimização;
  • uma ferramenta XtraBackup para backup dinâmico com opções de backup completas e incrementais;
  • suporte aos mecanismos de armazenamento MyRocks e Toku;
  • instrumentos de solução de problemas avançados, por exemplo, por tabela, índice, cliente, usuário, além de contadores de desempenho por linha de execução;
  • autenticação PAM e geração de registros de auditoria, disponíveis no MySQL Enterprise Edition do MySQL, mas não no Community Edition; e
  • Pt-toolkit, desenvolvido pela Percona, um serviço utilitário que tem muitas opções para administrar o MySQL

Qual opção escolher?

As necessidades de uma aplicação determinam qual banco de dados escolher, já que diferentes bancos de dados têm recursos exclusivos voltados a casos de uso específicos. Por exemplo, se a aplicação exigir análise, use o clickhouse no Percona ou o columnstore no MariaDB. No entanto, essa opção não está disponível no MySQL. Da mesma forma, se você quiser usar o recurso de pooling de linhas de execução, que não está disponível na versão Community do MySQL, será necessário escolher o MySQL Enterprise ou o pooling de linhas de execução de código aberto no Percona e MariaDB.

MySQL na nuvem

Um banco de dados na nuvem é criado para ser executado em um ambiente de nuvem pública ou híbrida e ajudar a organizar, armazenar e gerenciar dados dentro de uma organização. Os bancos de dados na nuvem podem ser oferecidos como um banco de dados como serviço (DBaaS) gerenciado ou implantados em uma máquina virtual (VM) baseada na nuvem e autogerenciado por uma equipe de TI interna. Estão entre os principais provedores de nuvem para o MySQL gerenciado:

Google Cloud

O Google Cloud oferece uma versão do MySQL hospedada em uma máquina virtual, que precisa ser autogerenciada pelo usuário, e o Cloud SQL, que é uma oferta totalmente gerenciada.

Amazon Web Services (AWS)

O Amazon Web Services (AWS) oferece uma opção hospedada em VM para o MySQL e uma solução totalmente gerenciada na forma de RDS. Além disso, a AWS tem uma oferta do Aurora, que é compatível com o MySQL e dispõe de outros recursos.

Banco de Dados SQL do Azure

O Azure oferece dois modelos de implantação para o MySQL semelhantes aos de outros fornecedores de nuvem: uma opção de máquina virtual com o MySQL em VMs do Azure e uma versão totalmente gerenciada na forma do Azure Database para MySQL.

Oracle Cloud

A Oracle oferece a capacidade de hospedar o MySQL em máquinas virtuais. Ela também introduziu uma nova oferta totalmente gerenciada, o MySQL HeatWave Database Service.

Digital Ocean

A Digital Ocean também é capaz de hospedar o MySQL em máquinas virtuais. Ela também oferece uma opção de hospedagem totalmente gerenciada para o MySQL.

Soluções de alta disponibilidade (HA) ou de cluster

Muitas empresas trabalharam para ampliar o MySQL e criaram produtos que fornecem failover e alta disponibilidade para o banco de dados MySQL. Alguns destes são ferramentas diretas usadas com o MySQL e outros, modificações no código-fonte do MySQL que resultam na criação de produtos separados que fornecem clusters de alta disponibilidade ou de vários pais. Algumas soluções de alta disponibilidade e de escalonabilidade do MySQL incluem:

  • Replicação em grupo do MySQL e cluster do InnoDB

Um cluster do InnoDB consiste em pelo menos três instâncias do MySQL Server e fornece recursos de alta disponibilidade e escalonamento. Os clusters do InnoDB consistem em servidores MySQL Shell, MySQL Router e MySQL com replicação de grupos. Veja mais detalhes neste link.

O Cluster Percona XtraDB é uma solução de clustering síncrono que oferece recursos de alta disponibilidade, replicação paralela e escalonabilidade. O Cluster Percona XtraDB inclui a ferramenta de administração do ProxySQL, que configura automaticamente os nós do Cluster Percona XtraDB usando o ProxySQL. Veja mais detalhes neste link.

  • Cluster MariaDB Galera

O Cluster MariaDB Galera é multiprimário e síncrono virtualmente, além de oferecer recursos de alta disponibilidade e escalonabilidade. Ele funciona com os servidores MariaDB e a biblioteca do provedor wsrep do Galera. Fornece recursos como mesclagem automática de nós, replicação paralela verdadeira, topologia multiprimária e muito mais. Veja mais detalhes neste link.

  • Cluster Tungsten da Continuent

O cluster Tungsten fornece um único pacote simplificado, que tem todos os principais componentes necessários para implantar e gerenciar o banco de dados MySQL na forma de clusters. Ele oferece uma solução de clustering geográfico. É composto do Gerenciador, Replicador, e Conector do Tungsten, além de nós de dados e o Painel. Veja mais detalhes neste link.

  • MariaDB Xpand (anteriormente conhecido como ClustrixDB) 

O MariaDB Xpand fornece um SQL distribuído em conformidade com ACID, alta disponibilidade, tolerância a falhas, escalonamento de gravação e escalonamento horizontal para cargas de trabalho transacionais. O MariaDB Xpand é um componente do MariaDB Enterprise. Ele consiste em um ou mais nós MaxScale e três ou mais nós Xpand. Veja mais detalhes neste link.

  • ScaleArc

O ScaleArc é um software de balanceamento de carga de banco de dados que oferece alta disponibilidade. Veja mais detalhes neste link.

  • Vites

O Vitess tem recursos integrados de fragmentação que permitem expandir o banco de dados sem adicionar qualquer lógica de fragmentação ao aplicativo, oferecendo alta disponibilidade e escalonabilidade. Veja mais detalhes neste link.

  • Ferramentas que fornecem replicação padrão para failover: MHA, ProxySQL, MaxScale e Orchestrator
  • Serviços baseados na nuvem, como o Google Cloud, Oracle, AWS e Azure, oferecem alta disponibilidade interna para o MySQL

Ferramentas do MySQL

As ferramentas do MySQL estão à disposição em todos os formatos: baseadas na Web, interface de linha de comando (CLI) e interface gráfica do usuário (GUI). O MySQL tem uma ampla variedade de ferramentas comerciais e de código aberto para design, desenvolvimento, administração, backup, alertas e monitoramento de desempenho de bancos de dados. 

Estas são algumas ferramentas de monitoramento do MySQL na forma de GUI:

Monitoramento e Gerenciamento Percona, Prometheus, Monitor do MySQL Enterprise, New Relic, SolarWinds, HeidiSQL, AppDynamics, Datadog e SQLyog.

Veja algumas ferramentas conhecidas de administração, desenvolvimento ou utilitário:

  • Baseadas em GUI: MySQL Workbench, HeidiSQL, DBeaver, dbForge Studio, Navicat e SQLyog
  • Baseadas em CLI: kit de ferramentas do Percona, ghost

Detalhes das ferramentas mais usadas:

  • MySQL Workbench: pertence ao MySQL, disponível na versão Community Edition e Enterprise Edition com recursos avançados
  • Monitoramento e Gerenciamento Percona (PMM): desenvolvida pela Percona e disponibilizada gratuitamente
  • HeidiSQL: desenvolvida pela Ansgar Becker e disponível gratuitamente
  • Kit de ferramentas Percona, desenvolvido pela Percona e disponível gratuitamente
  • Toad: pertence à Quest e é uma ferramenta paga
  • phpMyAdmin: ferramenta gratuita de código aberto baseada na Web para administrar o MySQL
  • DBeaver: desenvolvida por uma comunidade de código aberto, disponível na versão Community Edition e Enterprise com recursos avançados mantidos pela DBeaver
  • Navicat: pertence à CyberTech e é uma ferramenta paga
  • SQLyog: pertence à Webyog e é uma ferramenta paga

Outras ferramentas de monitoramento importantes com gráficos para analisar as taxas de erro, padrões de tráfego e consulta com mecanismos de alerta são a New Relic, Zabbix, Cortex, Prometheus e Grafana.

Como executar o MySQL com contêineres/Kubernetes

Atualmente, a execução de um banco de dados em um cluster do Kubernetes com imagens de contêiner do Docker está em alta. Ele ajuda a gerenciar o banco de dados usando código, implantações fáceis e rápidas, proteção de dados, isolamento do aplicativo e usabilidade de recursos compartilhados. Basicamente, todas as vantagens do Docker podem ser aproveitadas pelo sistema de banco de dados. Há também alguns operadores do Kubernetes já disponíveis para o MySQL. No entanto, há muito espaço para melhoria nessa área.

Pronto para testar o MySQL?

O Google Cloud oferece uma oferta totalmente gerenciada do MySQL: o Cloud SQL para MySQL
Saiba mais sobre o Cloud SQL

Saiba como o Cloud SQL para MySQL ajuda a inovar. Veja a documentação