← Voltar ao blog
MySQL 22 de setembro de 2026 9 min de leitura

MySQL ou MariaDB: qual é o melhor? Comparativo honesto

MariaDB nasceu como fork do MySQL, mas em 2026 são bancos diferentes. Comparo compatibilidade, performance, licença e clusterização — e digo em quais cenários eu escolho cada um.

MySQL ou MariaDB: qual é o melhor? Comparativo honesto

Em 2010, quando a Sun (dona do MySQL) foi comprada pela Oracle, Michael "Monty" Widenius — criador do MySQL — pegou o código, fez um fork e batizou de MariaDB, nome da filha mais nova dele. A primeira também virou banco: o MySQL se chama assim por causa da My.

Dezesseis anos depois, a pergunta "qual é o melhor" ficou mais interessante, porque eles deixaram de ser o mesmo banco com nomes diferentes.

Dois bancos de dados conectados por uma linha que se bifurca, representando o fork do MySQL
Um fork começa igual. Depois de uma década, vira outra coisa.

Onde eles ainda são gêmeos

Para o CRUD do dia a dia, você não vai notar diferença. O dialeto SQL básico, o protocolo de conexão e a maioria dos drivers funcionam nos dois. Este script roda igual nos dois lados:

CREATE TABLE pedidos (
  id          BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  cliente_id  BIGINT UNSIGNED NOT NULL,
  total       DECIMAL(12,2) NOT NULL,
  criado_em   DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  KEY idx_cliente_data (cliente_id, criado_em)
) ENGINE=InnoDB;

SELECT cliente_id, SUM(total) AS faturamento
FROM pedidos
WHERE criado_em >= '2026-01-01'
GROUP BY cliente_id
ORDER BY faturamento DESC
LIMIT 20;

Onde eles divergiram de verdade

AspectoMySQL 8.4MariaDB 11.x
MantenedorOracleMariaDB Foundation + MariaDB plc
LicençaGPLv2 + edição Enterprise comercialGPLv2, sem edição fechada
Engine padrãoInnoDBInnoDB, mais Aria, ColumnStore, Spider
Clusterização nativaGroup Replication / InnoDB ClusterGalera Cluster (multi-master síncrono)
JSONTipo nativo binárioAlias de LONGTEXT com funções JSON
Recursos exclusivosCTE recursiva madura, window functions, clone pluginTabelas temporais, sequences, colunas comprimidas

A pegadinha do JSON

Essa diferença já me custou um fim de semana. No MySQL, JSON é um tipo real, armazenado em formato binário e validado na escrita. No MariaDB, é açúcar sintático sobre LONGTEXT com uma constraint de validação. O SQL parece igual, a migração de dump funciona, e aí a aplicação começa a receber ordenação de chaves diferente e comparações que não batem:

-- Funciona nos dois, com comportamento interno diferente
SELECT JSON_EXTRACT(config, '$.tema') AS tema
FROM usuarios
WHERE JSON_VALID(config);

-- Índice sobre JSON: no MySQL, coluna gerada + índice funcional
ALTER TABLE usuarios
  ADD COLUMN tema VARCHAR(30)
    GENERATED ALWAYS AS (JSON_UNQUOTE(JSON_EXTRACT(config, '$.tema'))) STORED,
  ADD INDEX idx_tema (tema);

Clusterização: o ponto forte do MariaDB

Galera dá replicação síncrona multi-master com um esforço de configuração honestamente menor que o InnoDB Cluster. Em compensação, Galera exige disciplina: toda tabela precisa de chave primária, DDL exige cuidado e escrita concorrente no mesmo registro em nós distintos gera conflito de certificação. Se alta disponibilidade é o seu tema, leia também MySQL em aplicações críticas e escaláveis.

E a compatibilidade de volta?

Atenção a este detalhe, que quase ninguém comenta: migrar de MySQL para MariaDB costuma ser tranquilo. Voltar é que dói. Se você usou tabelas temporais, sequences ou ColumnStore, não existe caminho direto de retorno. É decisão de porta única — trate como tal.

Como eu decido

  • Escolho MySQL quando o ambiente é cloud gerenciada (RDS, Aurora, Cloud SQL têm o suporte mais maduro), quando a aplicação é de terceiros e homologa "MySQL" no contrato, ou quando o time já domina o ferramental Oracle.
  • Escolho MariaDB quando a exigência é 100% open source sem edição fechada, quando quero Galera multi-master on-premises, ou quando as engines extras resolvem um problema específico.
  • Não escolho por "performance": nos benchmarks públicos recentes a diferença fica em margem de ruído para OLTP. Quem decide a performance é o seu índice, não a marca.

Curioso sobre as outras rodadas dessa disputa? Veja MySQL ou PostgreSQL e, se a dúvida é mais básica do que parece, MySQL ou SQL: qual a diferença. O panorama completo está no guia definitivo de MySQL.


Sobre o autor: Alexandre Almeida atua com bancos de dados há mais de 25 anos, foi instrutor oficial de MySQL e Oracle para mais de 1.000 alunos e escreveu Aprendendo MySQL: Prática, Teoria e Laboratórios. Os exemplos foram validados em MySQL 8.4 e MariaDB 11.4.

Fontes: MySQL 8.4 Reference Manual, MariaDB Server Documentation (Incompatibilities and Feature Differences) e notas de release de ambos os projetos.