MariaDB ou MySQL: qual sistema de gerenciamento de banco de dados está na frente? Embora o foco inicial do MariaDB fosse desenvolver um substituto direto que atendesse altos padrões da comunidade de código aberto, atualmente ambos os projetos seguem objetivos de desenvolvimento completamente diferentes. Saiba quais são estes objetivos conosco.

MariaDB vs. MySQL: principais características

MySQL é um sistema de gerenciamento de banco de dados, testado e aprovado por usuários, disponível como software de código aberto e que pode ser complementado com diversas extensões empresariais. A equipe de desenvolvimento do MariaDB, liderada por Michael Widenius, incorporou o melhor da software central do MySQL e adicionou vários recursos. A seguinte tabela mostra para quem vale a pena a mudança de MySQL para MariaDB, comparando características centrais de ambos os SGBD.

Característica MySQL 8.0 MariaDB 11
Ano de lançamento 1995 2009
Desenvolvedor Oracle MariaDB Corporation / Fundação
Licença GPL + proprietária GPL v2
Suporte a SO Linux, Windows, macOS Suporte mais amplo para Linux
Replicação GTID, Master/Slave GTID, Galera Cluster
Particionamento MySQL Cluster Spider, Galera
Controle baseado em funções Desde 8.0 Desde 10.0.5
Autenticação SHA-256 ed25519
Criptografia InnoDB InnoDB, Aria, Logs
Firewall e mascaramento Proprietário Via MaxScale (BSL)
Funções de análise ColumnStore
Backup Backup empresarial MariaDB Backup (GPL)
Motores de banco de dados InnoDB, MyISAM … + ColumnStore, MyRocks, Aria …
Interfaces SQL/NoSQL Sim / Sim Sim / Sim
Conectores incl. C, Java, PHP + Excel, Swift, R

MySQL e MariaDB: desenvolvimento

A figura chave por trás do MariaDB e do MySQL é o desenvolvedor de software finlandês Michael “Monty” Widenius. Junto com os suecos David Axmark e Alan Larsson, Widenius fundou a empresa de ações MySQL AB, que em 1995 lançou a primeira versão do sistema de gerenciamento de banco de dados (DBMS) de código aberto MySQL. Isso culminou em 2008 com a venda do projeto de software para a Sun Microsystems. Em 2009, Widenius deixou o projeto de software junto com outros desenvolvedores e desenvolvedoras centrais do MySQL e passou a se concentrar no desenvolvimento do Fork MySQL MariaDB. A equipe de desenvolvimento temia que a Oracle entrasse em um conflito de interesses ao desenvolver o software de código aberto MySQL e, ao mesmo tempo, um software de banco de dados proprietário.

O desenvolvimento do Fork MySQL ocorreu inicialmente pela Monty Program AB, fundada em 2009. Esta se fundiu em 2014 com a SkySQL para formar a MariaDB Corporation. O projeto comunitário MariaDB Server é desenvolvido pela MariaDB Foundation. O MariaDB tem um forte foco no desenvolvimento aberto. Em destaque estão dois princípios:

  • O código-fonte de partes de programas em desenvolvimento está disponível em repositórios públicos.
  • Todos os passos de desenvolvimento são documentados publicamente.

MariaDB vs. MySQL: comparação

Os sistemas de gerenciamento de banco de dados MySQL e MariaDB são baseados no mesmo núcleo de software. O MariaDB é um fork (uma divisão) do MySQL 5.1, mas ao longo do tempo se desenvolveu em um sistema de gerenciamento de banco de dados independente. Comparamos as diferenças entre as versões atuais de GA (Disponibilidade Geral) do MariaDB e MySQL, MySQL 8.0.43 e MariaDB 11.8.2.

Cloud Compute Engine da IONOS

Empresas de médio e grande porte optam pela nuvem da Alemanha. Serviços IaaS e PaaS são para campeões.

  • Seguro
  • Confiável
  • Flexível

Estrutura do banco de dados

O desenvolvimento do MariaDB tem como objetivo garantir total compatibilidade com a estrutura do banco de dados, APIs e arquivos de configuração do MySQL, permitindo aos usuários um Drop-in-Replacement. Um upgrade do MySQL para MariaDB ou vice-versa deve ser tão fácil quanto um upgrade entre duas diferentes versões do MySQL.

Em princípio, ambos os sistemas de gerenciamento de banco de dados têm a mesma estrutura de banco de dados subjacente. Ambos os sistemas seguem o modelo de banco de dados relacional. No entanto, desde a versão 10.5, MariaDB não utiliza mais mysqldump ou mysqladmin para tarefas de administração e backups como no MySQL, mas sim mariadb-dump e mariadb-admin.

Nota

MariaDB se estabeleceu como um substituto binário 1:1 para MySQL. No entanto, a partir da versão 8.0 do MySQL, essa compatibilidade não é mais garantida.

Motores de banco de dados

MariaDB pretende se diferenciar do MySQL no futuro, principalmente por meio da flexibilidade. Os usuários têm, além dos motores padrão suportados pelo MySQL, uma quantidade crescente de motores de banco de dados alternativos disponíveis para casos de uso específicos.

A tabela a seguir mostra os motores de banco de dados disponíveis para MySQL 8.0.43 e MariaDB 11.8.2 (de acordo com a documentação).

Motor de banco de dados MySQL 8.0.43 MariaDB 11.8.2 Descrição
InnoDB / XtraDB InnoDB é padrão em ambos os sistemas. XtraDB foi utilizado no MariaDB até a versão 10.1
MyISAM Sistema de armazenamento obsoleto sem suporte a transações
MEMORY Para tabelas temporárias na memória com acessos rápidos
CSV Armazena tabelas no formato CSV
Arquivo Comprime dados para armazenamento de longo prazo
BLACKHOLE Aceita dados, mas não os armazena, usado para registro/teste
Merge Une várias tabelas MyISAM com a mesma estrutura
Federated / FederatedX Acesso a tabelas remotas via rede (MariaDB: FederatedX)
ColumnStore Engine orientada a colunas para análise de grandes volumes de dados
Aria Alternativa ao MyISAM com suporte transacional para tabelas temporárias
CONNECT Acesso a fontes de dados externas como CSV, XML, ODBC
Sequence Gera sequências numéricas (ex. 1, 2, 3 …)
Spider Engine de sharding com suporte para transações XA

Consultas de banco de dados

Na aplicação, as diferenças entre MariaDB e MySQL são inexistentes. Ambos os SGBD buscam uma compatibilidade de 100% com a linguagem de banco de dados SQL. Os usuários utilizam comandos SQL idênticos para criar, atualizar, consultar ou excluir registros de banco de dados.

Desempenho

O MariaDB oferece melhor desempenho em comparação ao MySQL? Testes de benchmark como o DBT-3 indicam que sim. Um fator decisivo é qual mecanismo de banco de dados é utilizado. Testes de benchmark para configurações com diferentes mecanismos de banco de dados são disponibilizados pelas comunidades de desenvolvedores em seus respectivos sites de projeto.

O MariaDB se destaca aqui não só por sua ampla seleção de mecanismos de banco de dados alternativos, mas também por oferecer um otimizador eficiente para consultas SQL. A partir da versão 10.0.1, MariaDB não utiliza mais estatísticas internas da respectiva engine para otimização, mas sim estatísticas de tabelas independentes de engine. Estas são armazenadas como tabelas convencionais no banco de dados, permitindo capturar e avaliar muito mais valores, a fim de determinar um plano ideal para a execução de comandos SQL.

Nota

Na documentação do MariaDB, interessados encontram diversas instruções para otimização da performance do banco de dados. O MySQL também oferece amplo material informativo sobre ajuste de bancos de dados (necessário conta web da Oracle).

Alta disponibilidade

Tanto o MySQL quanto o MariaDB são adequados para cenários com bancos de dados distribuídos. Para oferecer aos usuários sistemas altamente disponíveis com escalabilidade linear, ambos os projetos de software disponibilizam soluções de cluster:

  • MySQL Cluster
  • MariaDB Galera Cluster

O MySQL Cluster é um banco de dados em tempo real, compatível com ACID, com arquitetura multi-master e sem ponto único de falha. Ele oferece até 99,9999% de disponibilidade, escalabilidade horizontal em hardware padrão, auto-sharding, além de interfaces SQL e NoSQL.

O MariaDB Galera Cluster está integrado diretamente desde a versão 10.1. Ele também se baseia em uma arquitetura multi-master e utiliza exclusivamente InnoDB (ou XtraDB). Para bancos de dados distribuídos, o MaxScale é utilizado. O proxy configurável para balanceamento de carga oferece funções como failover, caching, divisão de leitura/escrita e medidas de proteção contra DoS. Plugins permitem a personalização e filtragem de acessos ao banco de dados.

Nota

Desde a versão 2, o MaxScale está sob a Business Source License (BSL). O código-fonte está livremente disponível, mas o uso é restrito. Após três anos, a licença se torna automaticamente uma licença Open Source semelhante à GPL.

Segurança

Tanto o MySQL quanto o MariaDB oferecem funções de criptografia para dados em repouso. O MySQL implementa a criptografia dos dados armazenados no banco de dados usando o mecanismo de banco de dados InnoDB no nível do espaço de tabelas. A criptografia de tabelas individuais do banco de dados não é possível.

Nota

Os Tablespaces (espaços de tabelas) são unidades de armazenamento lógico de mecanismos de bancos de dados relacionais como o InnoDB, que contêm todos os dados do sistema de banco de dados. Cada Tablespace inclui pelo menos um arquivo de dados, um arquivo físico do sistema operacional subjacente onde tanto tabelas de banco de dados quanto índices são armazenados.

O MariaDB, por outro lado, oferece desde a versão 10.1 funções de criptografia significativamente mais diferenciadas. Estas incluem uma criptografia de dados em repouso nos seguintes níveis do banco de dados:

  • Espaços de tabelas InnoDB
  • Tabelas InnoDB
  • Arquivos de log InnoDB
  • Tabelas Aria
  • Arquivos temporários
  • Dados de log binários

Com as Chaves de Criptografia Rolling, o MariaDB oferece uma função que permite definir uma data de validade para as chaves de criptografia.

Ambos os sistemas de gerenciamento de banco de dados suportam o Key Management Service (KMS) da Amazon Web Services (AWS) via plugin, bem como conexões criptografadas por SSL. Na autenticação de usuários, MySQL e MariaDB também utilizam um sistema de plugins. A equipe de desenvolvedores do MySQL disponibiliza aos usuários dois plugins de autenticação: sha256_password e caching_sha2_password. Este último oferece, além da autenticação padrão via Secure Hash Algorithm, um cache do lado do servidor que permite uma reautenticação mais rápida. MariaDB até a versão 10.1.21 também utiliza o Secure Hash Algorithm com SHA-1. A partir da versão 10.1.22, o plugin ed25519 está em uso. O ed25519 é um esquema de assinatura do EdDSA que combina o SHA-2 com o Curve25519.

O diferencial do MariaDB no campo da segurança de banco de dados é o controle de acesso baseado em papéis Role Based Access Control, RBAC, que está implementado nativamente no SGBD desde a versão 10.0.5. Isso simplifica significativamente a gestão de direitos de acesso e reduz erros na concessão manual de permissões. No entanto, o MySQL também adotou esse recurso: desde o MySQL 8.0.0 (2018), o MySQL também suporta papéis (roles) como parte de suas funções de gerenciamento de usuários e direitos.

Ecossistema

Com o sistema de licenciamento duplo, a Oracle aplica uma estratégia Open-Core no MySQL. Enquanto o núcleo do programa MySQL está disponível como Community Edition com código fonte público e gratuito, várias extensões para o sistema de gerenciamento de banco de dados são oferecidas apenas em conjunto com uma das edições comerciais. Graças a uma forte rede com a comunidade de código aberto, a equipe de desenvolvedores do MariaDB consegue implementar interfaces para alternativas de código aberto para a maioria dos produtos proprietários do MySQL no MariaDB.

Função MySQL MariaDB Server
Monitoramento MySQL Enterprise Monitor (proprietário) Webyog Monyog (proprietário)
Backup MySQL Enterprise Backup (proprietário) MariaDB Backup (Fork do Percona XtraBackup, GPL)
Gerenciamento de SQL MySQL Workbench (GPL/proprietário) Webyog SQLyog (GPL/proprietário)
Balanceamento de carga e roteamento MySQL Router (GPL/proprietário) MariaDB MaxScale (BSL)
Firewall MySQL Enterprise Firewall (proprietário) MariaDB MaxScale (BSL)

Suporte

O suporte profissional está disponível tanto para MySQL quanto para MariaDB apenas para clientes pagantes. O MySQL oferece, por meio da licença paga Oracle Premier Support, suporte 24/7, patches, atualizações, além de consultoria técnica e solução de problemas.

A MariaDB Corporation oferece,por meio de uma assinatura, suporte 24/7, atualizações de segurança, consultoria de desempenho e ajuda para migrações, também para MySQL. Como muitos dos desenvolvedores originais do MySQL trabalham hoje no MariaDB, a empresa destaca seu conhecimento em ambos os sistemas.

Documentação e comunidade

O MySQL é propriedade da Oracle Corporation, que publica uma extensa documentação de todos os projetos MySQL de código aberto no site oficial do MySQL. Além disso, a comunidade de usuários tem as seguintes opções para se informar sobre o MySQL:

A documentação do MariaDB é de responsabilidade da MariaDB Foundation, que se baseia na comunidade de usuários. Quem deseja participar do desenvolvimento e documentação dos servidores MariaDB ou dos aplicativos de código aberto do ecossistema MariaDB encontrará as informações relevantes no site da MariaDB Foundation.

Quando usar MariaDB ou MySQL

O MariaDB é ideal para aplicações internas de negócios que você deseja operar sem custos de licença. Muitas empresas utilizam o MariaDB em plataformas web, sistemas de gerenciamento de conteúdo ou como banco de dados para relatórios e análises. Também mostra sua força em sistemas distribuídos com muitos acessos de leitura e escrita simultâneos. Se você trabalha em servidores Linux ou deseja substituir uma instalação MySQL, você se beneficia da compatibilidade e extensibilidade.

O MySQL se destaca principalmente em grandes e estáveis sistemas de produção. Áreas de aplicação típicas incluem lojas on-line, sistemas de reservas, plataformas SaaS ou aplicações financeiras com elevadas exigências de disponibilidade e segurança de transações. Quando você opera aplicações na nuvem, como na AWS, Google Cloud ou Oracle Cloud, geralmente recorre diretamente ao MySQL. Também é a escolha certa para processamento de JSON altamente estruturado ou quando você precisa de suporte coberto por SLA.

MariaDB vs. MySQL: conclusão

O MySQL é um sistema de banco de dados maduro e amplamente difundido. No entanto, muitas funções empresariais, como monitoramento, backup e segurança, estão presentes apenas em edições pagas. O MariaDB surgiu como um fork do MySQL e se estabeleceu como uma alternativa open source completa. Muitas distribuições Linux o adotam como padrão. Funções exclusivas como MaxScale e ColumnStore demonstram a crescente independência.

A decisão entre MySQL e MariaDB depende, em última análise, menos do nome e mais de qual sistema se adapta melhor ao seu cenário de aplicação.

Dica

Em outros guias, fazemos uma comparação entre MariaDB e PostgreSQL e MariaDB e MongoDB.

Este artigo foi útil?
Ir para o menu principal