Qual é a diferença entre MariaDB e MySQL?

O MySQL e o MariaDB são tecnologias de banco de dados de código aberto. É possível usá-los para armazenar dados em formato tabular com linhas e colunas. O MySQL é o banco de dados de código aberto mais amplamente adotado. E é o principal banco de dados relacional de muitos sites, aplicações e produtos comerciais populares. O MariaDB é uma versão modificada do MySQL. O MariaDB foi criado pela equipe de desenvolvimento original do MySQL, devido a questões de licenciamento e distribuição, após a aquisição do MySQL pela Oracle Corporation. Desde a aquisição, o MySQL e o MariaDB evoluíram de forma diferente. No entanto, o MariaDB adota os arquivos de definição de dados e tabelas do MySQL, além de usar protocolos de cliente, APIs, portas e soquetes idênticos. O objetivo é permitir que os usuários do MySQL mudem para o MariaDB sem complicações.

Leia sobre o MySQL »

Quais são as semelhanças entre o MariaDB e o MySQL?

O MySQL é um sistema de gerenciamento de banco de dados relacional lançado em 1995. Em 2009, os desenvolvedores lançaram o MariaDB como uma bifurcação de código do MySQL 5.1.38.

Como o MariaDB é uma bifurcação do MySQL, existem muitas semelhanças entre os dois sistemas de gerenciamento de banco de dados relacional. Por exemplo, o MariaDB manteve a estrutura, as convenções de nomenclatura e os arquivos de definição de dados do MySQL. Além disso, ele suporta todos os conectores, conexões e portas do MySQL. O pacote de cliente MySQL funciona inalterado com o MariaDB.

A seguir, apresentamos mais algumas semelhanças.

Conformidade com ACID

Atomicidade, consistência, isolamento e durabilidade (ACID) são os quatro princípios fundamentais que garantem a confiabilidade das transações de banco de dados. Tanto o MySQL quanto o MariaDB mantêm esses princípios. Ao seguir o ACID, os dois bancos de dados mantêm a precisão e a integridade dos dados.

Compatibilidade do SQL

MySQL e MariaDB são bancos de dados relacionais que organizam dados em tabelas. Tanto o MariaDB quanto o MySQL usam SQL para gerenciar e consultar dados. É possível usar muitos dos mesmos comandos nesses sistemas.

Leia sobre SQL »

Tanto o MySQL quanto o MariaDB armazenam dados como tabelas relacionais com interface SQL.

Softwares de código aberto

Como sistemas de gerenciamento de banco de dados relacional de código aberto, o MySQL e o MariaDB são esforços colaborativos que surgiram de uma comunidade de desenvolvedores. O código-fonte está disponível ao público.

O banco de dados MySQL tem uma versão totalmente de código aberto, lançada sob a Licença Pública Geral (GPL). Ele também tem uma versão corporativa paga, que vem com recursos e suporte adicionais. O MariaDB é totalmente de código aberto no GitHub.

Segurança

O MySQL e o MariaDB oferecem recursos de segurança básicos semelhantes. Eles oferecem criptografia, mecanismos de controle de acesso, autenticação e autorização do usuário e suporte a SSL/TLS. Eles também permitem um controle de acesso refinado, que possibilitam conceder diferentes níveis de permissão a diferentes usuários.

Principais diferenças: MariaDB vs. MySQL

Desde que se separou do MySQL, o MariaDB continuou a expandir seus recursos. Algumas dessas mudanças resultaram em diferenças fundamentais de funcionalidade, capacidade e performance.

Aqui estão as diferenças significativas entre o MySQL e o MariaDB.

Tratamento de dados JSON

O MariaDB e o MySQL suportam a recuperação e o armazenamento de dados JSON. No entanto, eles armazenam relatórios JSON de maneiras diferentes. O MariaDB armazena relatórios JSON em strings, enquanto o MySQL os armazena como objetos binários.

O MySQL e o MariaDB também não oferecem suporte a todas as funções JSON. O MariaDB suporta JSON_QUERY e JSON_EXISTS, enquanto o MySQL não. Da mesma forma, o MySQL suporta o tipo de dado JSON nativo JSON_TABLE, não suportado pelo MariaDB.

No entanto, o MariaDB só suporta tipos de dado JSON a partir da versão 10.2. O tipo de dado JSON que o MariaDB usa é um alias para LONGTEXT.

Funcionalidade

Como seus caminhos de desenvolvimento foram diferentes, o MariaDB e o MySQL agora oferecem funcionalidades ligeiramente diferentes.

Por exemplo, o MySQL oferece colunas dinâmicas que permitem definir vários valores de dados em uma única coluna e modificar a coluna com funções. As colunas dinâmicas permitem o mascaramento de dados para proteger informações confidenciais.

Por sua vez, o MariaDB oferece suporte a colunas invisíveis nas visualizações do banco de dados. As colunas invisíveis não são listadas quando um usuário executa uma instrução SELECT ou solicita um valor em uma instrução INSERT.

Autenticação de usuários

O MySQL tem o componente validate_password, que pode ser usado para aumentar a segurança da senha.

O MariaDB não tem isso por padrão, mas oferece três plug-ins validadores. É possível usar esses plug-ins de validação de senha para adicionar mais proteção às senhas. Na versão 10.4, o MariaDB introduziu o plug-in de autenticação ed25519 para substituir a autenticação SHA-1 usada anteriormente. Isso ajuda a autenticar usuários e armazenar senhas com segurança. 

Criptografia

O MySQL e o MariaDB criptografam dados em repouso e em trânsito.

O MySQL permite que usuários administradores configurem e criptografem redo e undo logs, sem criptografar espaços de tabela temporários ou registros binários.

Por outro lado, o MariaDB suporta criptografia de log binário e criptografia de tabela temporária. 

Agrupamento de threads

O agrupamento de threads permite que um banco de dados otimize seus recursos ao emparelhar novas conexões com encadeamentos preexistentes. Uma alta capacidade de agrupamento de threads é vital para aplicações que desejam escalar e atender milhares de usuários em paralelo.

O MariaDB inclui o agrupamento de threads em seu plug-in de agrupamento de threads, que faz parte da edição comunitária. O MariaDB oferece a capacidade de gerenciar mais de 200.000 conexões ao mesmo tempo.

O MySQL tem um plug-in de agrupamento de threads em na Enterprise Version. No entanto, ele não pode lidar com tantas conexões de uma vez quanto o MariaDB.

Quando usar o MariaDB vs. MySQL

O MariaDB é mais escalável e oferece uma velocidade de consulta maior, quando comparado ao MySQL. Isso o torna bom para gerenciar dados de grande porte. Também são encontrados mais recursos no MariaDB, não disponíveis no MySQL, como mecanismos de armazenamento de sequência e colunas virtuais. Também é possível usar vários mecanismos em uma tabela.

No entanto, o MySQL existe há muito mais tempo do que o MariaDB. Algumas organizações preferem o suporte corporativo oferecido pelo MySQL.

A seguir, apresentamos algumas considerações ao escolher entre os dois bancos de dados.

Mecanismos de armazenamento

Nos sistemas de gerenciamento de banco de dados, os mecanismos de armazenamento são um componente que ajuda a recuperar, atualizar e armazenar dados no banco de dados. O mecanismo de armazenamento com o qual você deseja trabalhar pode influenciar a decisão.

É possível usar vários mecanismos de armazenamento no MySQL e no MariaDB, mas o MySQL oferece menos opções. Alguns mecanismos de armazenamento no MySQL incluem InnoDB, CSV, Federated, MyISAM e Merge.

O MariaDB suporta alguns mecanismos de armazenamento não oferecidos pelo MySQL, como XtraDB, Aria, InnoDB, MariaDB ColumnStore, Memory, Cassandra e Connect.

Licença

Tanto o MariaDB quanto o MySQL têm versões da Licença Pública Geral (GPL). O MariaDB está totalmente sob autorização da GPL, enquanto o MySQL tem duas licenças disponíveis: pública e privada.

A licença privada da edição do MySQL Enterprise Edition desbloqueia recursos adicionais, como agrupamento de threads, que aceleram a velocidade da consulta. As empresas que desejam distribuir software MySQL sem distribuir o código-fonte sob a GPL podem preferir o MySQL Enterprise Edition.

Compatibilidade com bancos de dados Oracle

A compatibilidade do banco de dados Oracle é a capacidade do banco de dados Oracle de trabalhar com uma aplicação criada com bancos de dados MariaDB ou MySQL.

Se a organização já usa produtos de banco de dados Oracle, você pode preferir o MySQL. O banco de dados Oracle oferece um modo de compatibilidade específico para a sintaxe SQL específica do MySQL. No entanto, o MySQL não suporta PL/SQL, a linguagem orientada a aplicações desenvolvida pela Oracle.

Desde a versão 10.3, o MariaDB suporta PL/SQL. O MariaDB também oferece um modo de compatibilidade de sintaxe Oracle para executar aplicações de banco de dados Oracle sem alterações.

Velocidade e performance

Por muitos anos, o MySQL superou o MariaDB em vários casos de uso. Por exemplo, o MySQL 8.0 pode lidar com mais consultas por segundo do que a versão 10.3 do MariaDB. No entanto, o MariaDB fez muitas melhorias nos últimos anos.

Atualmente, o MariaDB é mais rápido em termos de realização de consultas e em tarefas de replicação. Pode ser preferível usar o MariaDB para workloads de performance crítica.

É possível mudar do MySQL para o MariaDB?

Sim, é possível migrar do MySQL para o MariaDB com o mínimo esforço. O MariaDB foi projetado para ser compatível com versões anteriores do MySQL. Isso significa que aplicações e scripts escritos para MySQL devem funcionar com o MariaDB sem nenhuma alteração significativa. 

Até o MariaDB 5.5, o MariaDB Server seguia o esquema de numeração de versões do MySQL, visando a compatibilidade direta com a mesma versão principal do MySQL. Em 2012, para refletir o crescente número de recursos que não estavam disponíveis no MySQL, a numeração de versões do MariaDB Server mudou. O MariaDB lançou a versão 10.0, enquanto o MySQL lançou a 5.6.

O MariaDB Server ainda mantém altos níveis de compatibilidade com o MySQL. Atualizações de versões antigas do MySQL, até mesmo para as versões mais recentes do MariaDB, são suportadas com uma atualização no local.

A mudança do MySQL para o MariaDB segue um procedimento de instalação padrão. Basta executar a ferramenta mysql_upgrade para atualizar os privilégios e as tabelas de eventos do banco de dados MySQL com equivalentes do MariaDB.

Resumo das diferenças: MySQL versus MariaDB

 

MySQL

MariaDB

JSON

O MySQL armazena relatórios JSON como objetos binários.

O MariaDB armazena relatórios JSON em strings. O tipo de dado JSON do MariaDB é um alias para LONGTEXT.

Compatibilidade com bancos de dados Oracle

O MySQL tem um alto nível de compatibilidade, mas não suporta PL/SQL.

O MariaDB tem um alto nível de compatibilidade e suporta PL/SQL a partir da versão 10.3.

Velocidade e performance

O MySQL é um pouco mais lento que o MariaDB em replicação e consulta.

O MariaDB é um pouco mais rápido que o MySQL em replicação e consulta.

Funcionalidade

O MySQL suporta a função super somente leitura, colunas dinâmicas e mascaramento de dados.

O MariaDB suporta colunas invisíveis e espaço de tabela temporário.

Autenticação

O MySQL tem o componente validate_password.

O MariaDB tem três plug-ins de validação de senha.

Criptografia

Os bancos de dados MySQL usam InnoDB e AES para criptografar dados em repouso.

O MariaDB suporta criptografia de log temporário e criptografia de log binário.

Mecanismos de armazenamento

O MySQL tem menos mecanismos de armazenamento do que o MariaDB.

O MariaDB tem mais mecanismos de armazenamento do que o MySQL e pode usar vários mecanismos em uma tabela.

Licença

O MySQL tem duas versões: MySQL Enterprise Edition e uma versão GPL.

O MariaDB está totalmente em GPL.

Agrupamento de threads

O MySQL tem agrupamento de threads na Enterprise Edition.

O MariaDB pode gerenciar mais de 200.000 conexões ao mesmo tempo, o que é mais do que o MySQL.

Como a AWS oferece suporte aos seus requisitos do MySQL e do MariaDB?

O Amazon Relational Database Service (Amazon RDS) é uma coleção de serviços totalmente gerenciados que facilita a configuração, a operação e a escalabilidade de bancos de dados na nuvem.

Escolha entre sete mecanismos populares, dois dos quais são dedicados ao MySQL e ao MariaDB. O Amazon RDS for Maria DB oferece suporte às versões 10.3, 10.4, 10.5 e 10.6 do MariaDB Server. O Amazon RDS for MySQL oferece suporte às versões 5.7 e 8.0 do MySQL Community Edition. 

Cloud Watch Logs

Aqui estão outras maneiras pelas quais você pode se beneficiar do uso do Amazon RDS:

  • Implante bancos de dados na nuvem escaláveis do MariaDB e do MySQL em minutos, com capacidade de hardware redimensionável e econômica
  • Use código, aplicações e ferramentas existentes sem qualquer alteração
  • Acesse mais de 50 métricas de CPU, memória, sistema de arquivos e E/S de disco para monitoramento avançado de banco de dados
  • Aproveite a disponibilidade e a durabilidade aprimoradas para aumentar a escala horizontalmente de forma elástica além das restrições de capacidade de uma única instância de banco de dados

Comece a usar o MySQL e o MariaDB na AWS criando uma conta hoje mesmo.

Próximas etapas com a AWS

Comece a compilar com o MySQL
Comece a compilar com o PostgreSQL