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.

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.
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
| Aspecto | MySQL 8.4 | MariaDB 11.x |
|---|---|---|
| Mantenedor | Oracle | MariaDB Foundation + MariaDB plc |
| Licença | GPLv2 + edição Enterprise comercial | GPLv2, sem edição fechada |
| Engine padrão | InnoDB | InnoDB, mais Aria, ColumnStore, Spider |
| Clusterização nativa | Group Replication / InnoDB Cluster | Galera Cluster (multi-master síncrono) |
| JSON | Tipo nativo binário | Alias de LONGTEXT com funções JSON |
| Recursos exclusivos | CTE recursiva madura, window functions, clone plugin | Tabelas 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.