Comparação: MariaDB vs. MySQL

MariaDB ou MySQL? Qual dos dois sistemas de gerenciamento de banco de dados é melhor? O projeto de código aberto MySQL se orgulha de estar no mercado há mais de 20 anos. Já MariaDB, considerado um fork do MySQL, entrou em cena em 2009. No início, a ideia era que a solução mais nova substituísse a mais antiga utilizando os mesmos altos padrões open source. Contudo, hoje em dia, cada projeto tem objetivos de desenvolvimento diferentes. Entenda cada um deles.

MariaDB vs. MySQL: Desenvolvimento e história

Michael “Monty” Widenius, engenheiro de software finlandês, é o responsável pelo desenvolvimento tanto do MySQL quanto do MariaDB. Em 1995, um ano após dar início ao projeto, Widenius criou a empresa de capital aberto MySQL AB, juntamente com os suecos David Axmark e Alan Larsson. O objetivo era publicar um sistema de gerenciamento de banco de dados (DBMS) de código aberto chamado MySQL. Extremamente popular, ele atingiu seu ápice em 2008, quando foi vendido à Sun Microsystems por um bilhão de dólares.

Em 2009, Widenius deixou o projeto, junto com outros importantes desenvolvedores que trabalharam na criação do MySQL, e imediatamente começou a estabelecer a base para um fork do MySQL: o MariaDB. Widenius saiu da empresa antes que a Sun Microsystems fosse comprada pela Oracle, transação que gerou muita polêmica na indústria de softwares. A equipe de Widenius temia um possível conflito de interesses, caso a gigante Oracle decidisse reformular o software de código aberto MySQL, assim como desenvolver outros softwares proprietários de banco de dados.

Ao arquitetar o MariaDB, Widenius estipulou que o sistema deveria:

  • Permanecer com os talentosos especialistas que contribuíram para o desenvolvimento do MySQL.
  • Promover a continuidade da ideologia de desenvolvimento comunitário.
  • Certificar-se de que uma versão gratuita do MySQL sempre estivesse disponível a todos.

Widenius criou, em 2012, o MariaDB Foundation, possibilitado pelo Monty Program AB, programa iniciado em 2009 por ele próprio. Em 2014, o MariaDB Foundation foi fundida com o SkySQL, dando origem ao MariaDB Corporation.

Fato

Michael “Monty” Widenius homenageou os próprios filhos nos seus projetos. “My”, de “MySQL”, corresponde ao nome da filha mais velha, já o fork foi inspirado na filha mais nova, de nome Maria. Max, o nome do único filho homem, aparece nos sistemas de gerenciamento de banco de dados MaxDB e MaxScale.

Durante a fase inicial de desenvolvimento do MariaDB e de seus servidores, os principais membros do MariaDB Corporation se responsabilizaram pelas unidades comerciais, com o objetivo de evitar que elas fossem administradas pela mesma entidade que comandava a Oracle. A separação foi vista com bons olhos pela comunidade de código aberto.

O principal foco do MariaDB é seu sistema de desenvolvimento aberto, que segue dois princípios:

  • O código-fonte das partes do programa em desenvolvimento deve ser disponibilizado em repositórios públicos.
  • Todas as etapas adotadas no estágio de desenvolvimento devem ser públicas.

Do lado oposto, o sistema duplo de licença da Oracle foi bastante criticado pela comunidade. Reclamações baseavam-se nas diferenças cada vez maiores entre a versão comunitária de código aberto e os produtos proprietários do MySQL. As principais críticas diziam respeito à forma ambígua como erros nos softwares eram tratados.

MariaDB vs. MySQL: Linha do tempo

Ano Acontecimento
1995 Lançamento internacional do DBMS de código aberto MySQL, graças ao MySQL AB
2008 MySQL é vendido à Sun Microsystems
2009 Lançamento do projeto MariaDB, fork do MySQL, graças ao Monty Program AB
2010 Sun Microsystems é adquirida pela Oracle
2012 Criação do MariaDB Foundation
2014 Fusão do Monty Program AB com o SkySQL, resultando na criação do MariaDB Corporation
Dica

Mantenha seus projetos em um lar seguro com o serviço de hospedagem SQL Server Hosting da IONOS.

MariaDB vs. MySQL: Recursos comparados

Os sistemas de gerenciamento de banco de dados MySQL e MariaDB são, em essência, baseados na mesma solução de software. Embora o MariaDB seja um fork (em outras palavras, uma versão derivada) do MySQL 5.1, ele evoluiu ao longo do tempo até se diferenciar do antecessor. Nossa comparação MariaDB vs. MySQL apresenta as principais diferenças entre os dois sistemas, baseando-se nos recursos encontrados nas versões MySQL 8.0.11 e MariaDB 10.2.8. Exploraremos os seguintes aspectos:

  • Estrutura de banco de dados
  • Mecanismos de banco de dados
  • Consulta a bancos de dados
  • Desempenho
  • Disponibilidade
  • Segurança de uso
  • Compatibilidade de ecossistema
  • Suporte
  • Documentação e comunidade

Estrutura de banco de dados

O MariaDB foi desenvolvido com o objetivo de assegurar que usuários tivessem imediato acesso a um substituto do MySQL. Assim, ambos teriam de ser totalmente compatível em estrutura, APIs e dados de configuração. Migrar do MySQL para o MariaDB (ou vice-versa) deveria ser tão simples quanto atualizar a versão de um mesmo sistema. A equipe de desenvolvimento do MariaDB conseguiu cumprir esse propósito até a 7ª versão do MySQL, momento em que as coisas começaram a mudar.

Basicamente, os mesmos sistemas são usados pelas duas soluções para gerenciar bancos de dados: ambas seguem o modelo de banco de dados relacional, por isso suas definições de dados e tabelas são compatíveis. Ainda, protocolos, estruturas e interfaces de programação (APIs) são idênticos. Todos os conectores do MySQL podem ser usados com o MariaDB sem que seja necessário modificá-los. Assim, aplicações e ferramentas de interfaces de banco de dados padrão, como ODCB e JDBC, conseguem permanecer interconectadas. Ferramentas de linha de comando do MariaDB, como mysqldump e mysqladmin, também são úteis para a realização de tarefas administrativas e criação de backups.

Para erradicar qualquer problema de compatibilidade, a equipe de desenvolvimento do MariaDB sincroniza o código-fonte do fork com o MySQL mensalmente. No entanto, a compatibilidade binária dos dois sistemas de gerenciamento de banco de dados chegou ao fim com o lançamento do MySQL 8. A partir desta versão, o MySQL deixou de ser compatível com suas próprias versões anteriores, assim como com o MariaDB.

O Dicionário de Dados MySQL 8 prova que o desenvolvimento dos dois projetos de código aberto seguiu caminhos bem diferentes. O fato é justificado pela nova estratégia de processamento de metadados do MySQL, que se difere significativamente dos conceitos anteriores. Como o MariaDB não apresenta nenhum recurso similar até o momento, é seguro dizer que a compatibilidade de arquivos e de dados entre os dois sistemas deixará de existir num futuro próximo.

Nota

Inicialmente, o MariaDB era considerado o substituto com compatibilidade binária do MySQL. No entanto, desde o lançamento da 8ª versão do MySQL, esse conceito mudou.

Mecanismos de banco de dados

Por priorizar a flexibilidade, o MariaDB deve se diferenciar cada vez mais do MySQL. Além dos mecanismos padrão suportados pelo MySQL, usuários da variante também poderão usufruir de um número elevado de mecanismos de banco de dados alternativos para cenários de aplicação especiais.

Nota

Mecanismos de bancos de dados são subsistemas de armazenamento que possibilitam criação, leitura, atualização e exclusão de dados em tabelas de bancos de dados de diversos sistemas de gerenciamento. Leia sobre CRUD para entender melhor.

A tabela a seguir compara os mecanismos disponibilizados pelo MySQL 8.0.11 e pelo MariaDB 10.3, conforme documentação dos fornecedores.

Mecanismo do banco de dados MySQL 8.0.11 MariaDB 10.3.8 Especificações
InnoDB/XtraDB InnoDB é o subsistema de armazenamento padrão do MySQL desde a versão 5.5. Até a versão 10.1, o MariaDB usava o XtraDB, fork do InnoDB, como mecanismo de banco de dados padrão. Desde o lançamento da versão 10.2, o InnoDB passou a ser usado como o único subsistema de armazenamento do MariaDB. Ele dispõe de acesso de leitura e gravação orientado a transações.
MyISAM MyISAM, subsistema de armazenamento padrão das versões antigas do MyQSL, oferece acesso rápido a tabelas e índices de bancos de dados.
MEMORY MEMORY é um subsistema de armazenamento de dados temporários. Como definições de tabelas permanecem no disco rígido, seus dados ficam retidos na memória RAM. MEMORY é adequado para bancos de dados in-memory com acesso rápido e baixa latência.
CSV Este mecanismo salva dados como campos de dados em formato CSV (separado por vírgulas).
Archive Este mecanismo de banco de dados foi criado para armazenar grandes quantidades de dados por longos períodos. Ele dispõe de diversos algoritmos de compressão que possibilitam a retenção de dados com economia de espaço.
BLACKHOLE BLACKHOLE atua como inspetor de declarações SQL. Em vez de salvar dados, ele registra todos os elementos de sintaxe SQL.
Merge Merge facilita a fusão entre tabelas MyISAM com estruturas idênticas, criando uma tabela única.
Federated/FederatedX Federated permite que o MySQL acesse tabelas a partir de outros servidores usando uma configuração remota. O MariaDB usa um fork, FederatedX.
ColumnStore ColumnStore cuida de transferências InfiniDB, o que possibilita o processamento baseado em colunas de dados petabytes.
Aria Desde 2007, Aria cresceu para se tornar uma alternativa à prova de falhas ao MyISAM.
Cassandra Cassandra oferece aos usuários do MariaDB um mecanismo de banco de dados para gerenciar conjuntos de dados grandes e estruturados. O software segue uma abordagem não relacional (NoSQL) e foi projetado para oferecer alta disponibilidade e segurança contra falhas (sem nenhum ponto de falha).
CONNECT O mecanismo de armazenamento CONNECT facilita o acesso local e remoto a diversas fontes de dados, como Dbase, CSV, DOS, FMT e XML.
Mroonga Mroonga é um mecanismo de banco de dados baseado em colunas que oferece pesquisa de texto completo em diversos idiomas, incluindo chinês, japonês e coreano.
MyRocks MyRocks foi criado com a finalidade de armazenar dados rápidos e de baixa latência. Ele oferece uma compressão melhor que a do InnoDB.
OQGRAPH O mecanismo de consulta aberta GRAPH (ou OQGRAPH) processa dados de estruturas hierárquicas de bancos de dados em grafos complexos.
Sequence Este mecanismo de armazenamento permite que usuários gerem sequências numéricas ascendentes e descendentes de inteiros positivos, incluindo valores iniciais e finais, além de incrementos.
SphinxSE Sphinx Storage Engine (SphinxSE) é a alternativa às pesquisas de texto completas integradas do MariaDB. Isso se torna possível por meio do daemon de pesquisa Sphinx searchd.
Spider Spider é um mecanismo de banco de dados com função de fragmentação integrada (particionamento). Ele oferece suporte ao particionamento de bancos de dados e ao eXtended Architecture (XA). Assim, diversos recursos conseguem interagir com a mesma transação. Tabelas de sistemas de banco de dados diferentes são tratadas como se pertencessem ao mesmo sistema.
TokuDB TokuDB é usado para processar grandes quantidades de dados, sendo destinado ao chamado big data.

Consulta de banco de dados

O escopo de aplicação do MySQL não difere do MariaDB. Ambos os sistemas de gerenciamento de banco de dados têm por objetivo atingir uma taxa de compatibilidade de 100% com a linguagem de consulta de banco de dados SQL. Assim, usuários de ambos podem usar declarações SQL idênticas para criar, atualizar, recuperar e excluir entradas em bancos de dados.

Dica

Se você está começando agora, acesse nosso tutorial MySQL para principiantes e inicie a caminhada pelo mundo das declarações SQL.

Desempenho

A eficiência dos sistemas de banco de dados de cada empresa influencia diretamente as operações e os negócios. Visando o melhor desempenho possível, usuários se perguntam sempre qual dos projetos de código aberto do Widenius, MariaDB ou MySQL, é mais eficiente. Testes de benchmark, como DBT-3, sugerem que o MariaDB oferece melhor desempenho, devido aos tipos de mecanismo usados por ele. Os testes de benchmark aqui mencionados são disponibilizados à toda comunidade de desenvolvedores nos respectivos sites dos projetos.

O valor informativo de cada teste de aplicação é, entretanto, limitado por alguns fatores. É que o desempenho de cada banco de dados depende muito da forma como a instalação do software foi adaptada às respectivas necessidades e requisitos. Para adaptar o software a aplicações com necessidades específicas, usuários devem se concentrar nas opções oferecidas por cada sistema de gerenciamento de banco de dados.

O MariaDB é mais eficiente não só por oferecer uma melhor seleção de mecanismos de banco de dados alternativos: ele também conta com o SQL Query Optimizer. Ao otimizar consultas, o MariaDB (a partir da versão 10.0.1) não mais leva em conta estatísticas internas dos respectivos mecanismos de banco de dados, mas sim estatísticas de tabelas independentes de mecanismos. Elas são salvas em diversos bancos de dados na forma de tabelas convencionais, que registram e avaliam valores significativamente maiores, determinando o plano ideal para a implementação de declarações SQL.

Usuários interessados na ajuda oferecida pelas diretrizes de otimização de desempenho de bancos de dados pode encontrá-la no site oficial do MariaDB. Artigos apresentam informações sobre sistemas operacionais, configurações, estratégias de otimização para estruturas de dados, otimização de índices e tabelas, e estratégias de melhoria de desempenho para diversas consultas e subconsultas. Lá você também encontra dicas e truques sobre variáveis do sistema, buffers, cache, threads, melhorias de desempenho por tipo de banco de dados, criptografias, hashing e compressões.

O MySQL também disponibiliza materiais informativos sobre otimização de desempenho de banco de dados. No entanto, somente usuários com uma conta Oracle tem acesso a eles.

Alta disponibilidade

Nossa comparação MariaDB vs. MySQL atesta que ambas as soluções são adequadas a bancos de dados distribuídos. Para possibilitar que usuários utilizem sistemas de alta disponibilidade com escalabilidade linear, os dois projetos de software oferecem soluções de cluster:

O MySQL Cluster é baseado no modelo de bancos de dados ACID com transações em tempo real. Graças a sua arquitetura multimestre, ele é capaz de atingir 99,999% de taxa de disponibilidade sem apresentar nenhum ponto de falha. Bancos de dados podem ser escalados horizontalmente devido ao hardware padrão e oferecem a função de compartilhamento automático para intensas cargas de trabalho, leitura e gravação. O acesso aos dados depende dos requisitos da interface SQL ou NoSQL. O MySQL Cluster é lançado separadamente e está atualmente na versão 7.5. Assim como o MySQL, esta solução de cluster é vendida com um sistema de licença dupla. No entanto, a versão comunitária é oferecida com a Licença Pública Geral GNU.

Em sistemas de bancos de dados distribuídos, o MariaDB é baseado no software Galera Cluster da Codership, empresa finlandesa de software. Como a estrutura de interface correspondente foi integrada às versões mais recentes do MariaDB (10.1 ou mais nova), seus usuários não precisam baixar a ferramenta separadamente. Arquitetura multimestre também faz parte da composição do Galera Cluster. O InnoDB (ou XtraDB) atua como o único mecanismo de banco de dados para operações de cluster. Para retirar soluções de cluster individuais da gama de produtos do MySQL, a equipe de desenvolvedores do MariaDB criou o MaxScale, extensão especial do sistema de gerenciamento de banco de dados que oferece aos usuários recursos adicionais, possibilitando o roteamento em sistemas distribuídos.

MaxScale é um proxy de banco de dados usado principalmente para a distribuição de cargas. Ele pode ser configurado por meio de plugins para que não apenas encaminhe o acesso ao banco de dados, como também atenda a determinados requisitos, quando necessário. O proxy anonimiza dados sensíveis (nomes de usuário) ao despersonalizá-los, bloqueia solicitações conforme regras previamente configuradas, protege contra ataques DoS, inicia automaticamente mecanismos de rede failover e melhora o desempenho dos bancos de dados por cache e separação entre leitura e gravação (redirecionando acessos de leitura e gravação a diversas instâncias do banco de dados).

Ao contrário do MariaDB, o MaxScale não é coberto pela licença GPL desde a versão 2.0. É que o MariaDB desenvolveu seu próprio modelo de licença, Business Source License (BSL). Ele combina a demanda da comunidade de código aberto com os requisitos econômicos do desenvolvimento de um software.

Nota

Dizem alguns desenvolvedores que a Business Source License é uma alternativa ao Closed Source e ao Open Core. Contudo, embora o código-fonte da BSL esteja sempre disponível gratuitamente, o uso do MaxScale é limitado por tempo. Quando o limite de tempo do MaxScale chega ao fim, sua BSL é automaticamente convertida em uma licença de código aberto equivalente à GPL. Cada versão do MaxScale é disponibilizada a todos os usuários, sem qualquer limitação, até três anos após seu lançamento sob a licença GPL. O software pode ser usado, sem custo, em projetos com até três bancos de dados, mas usuários que necessitam de mais devem adquirir uma licença específica.

Segurança de uso

Criptografia, autenticação e funções de usuário estão entre os recursos de segurança mais importantes de um sistema de gerenciamento de banco de dados. Tanto o MySQL quanto o MariaDB aplicam métodos de criptografia a dados inativos (data-at-rest). O MySQL implementa a criptografia de dados já salvos em bancos de dados usando o InnoDB no nível do tablespace. Não é possível de fazer criptografia em tabelas individuais.

Nota

Tablespacessão unidades de armazenamento lógico de mecanismos de banco de dados relacionais (como o InnoDB) e contêm todos os dados do sistema de banco de dados correspondente. Cadatablespace contém pelo menos um arquivo físico do sistema operacional subjacente, onde as tabelas e os índices do banco de dados são salvos.

Desde a versão 10.1, as funções de criptografia do MariaDB se diferenciaram bastante das oferecidas pelo antecessor e demais concorrentes. Elas incluem métodos de criptografia para dados inativos nos seguintes níveis de banco de dados:

  • Tablespaces InnoDB
  • Tabelas InnoDB
  • Arquivos de log InnoDB
  • Tabelas Aria
  • Conjuntos de dados temporários
  • Dados binários de log

Com o Rolling Encryption Keys, o MariaDB oferece função adicional que determina a data de expiração das chaves de criptografia.

Os dois sistemas de gerenciamento de banco de dados oferecem suporte ao Key Management Service (KMS) da Amazon Web Services, se usado com um plugin especial.

A autenticação do usuário, tanto no MySQL quanto no MariaDB, depende de plugins. A equipe de desenvolvimento do MySQL criou dois plugins de autenticação para usuários: –sha256_password e caching_sha2_password. Além da autenticação padrão por algoritmo de hash seguro (SHA), o segundo plugin também autoriza cache no servidor, o que acelera o processo de autenticação.

Até a versão 10.1.21, o MariaDB também dispunha de um algoritmo de hash seguro (SHA-1). A partir da versão 10.1.22, contudo, o plugin ed25515 foi implementado, combinando SHA-2 e Curve25519, por meio do esquema de assinatura digital EdDSA. A tecnologia de criptografia usada pelo MariaDB é derivada, principalmente, do Google e da Eperi, empresa de software alemã.

Os dois sistemas de gerenciamento de banco de dados oferecem suporte a conexões com criptografia SSL.

No que diz respeito à segurança dos bancos de dados, o destaque, no MariaDB, vai para o controle de acesso baseado em função (RBAC), implementado a partir da versão 10.0.5. Ele facilita o gerenciamento de direitos de acesso e reduz a quantidade de erros relacionados à distribuição manual desses direitos. Até o momento, o MySQL não teve sucesso na implementação de um recurso similar.

Ecossistema

O sistema duplo de licença adotado pela Oracle para o MySQL segue uma estratégia de núcleo aberto: enquanto a edição comunitária do sistema e seu código-fonte são disponibilizados gratuitamente ao público, suas diversas extensões são oferecidas somente pelas versões comerciais. Graças aos fortes laços do MariaDB com a ideologia de código aberto, a equipe de desenvolvimento deste sistema consegue oferecer interfaces alternativas gratuitas, correspondentes à maioria dos produtos proprietários MySQL.

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

Suporte

MariaDB e MySQL são iguais em uma coisa: ambos disponibilizam suporte profissional apenas a um seleto número de usuários. Aqueles que possuem licença de algum produto proprietário MySQL ganham acesso ao Oracle Premier Support, que oferece ajuda ilimitada a qualquer hora, acesso a bases de conhecimento, lançamentos de manutenção, correção de bugs, patches e atualizações. Ainda, o serviço oferece resolução remota de problemas e orientação profissional sobre tuning de desempenho e instalação. Se necessário, usuários podem avaliar e examinar, com a ajuda de especialistas, elementos como replicações personalizadas, partições, planejamento de outlines, pesquisas, APIs, extensões de servidor, e funções e rotinas.

O MariaDB Corporation comercializa serviços de suporte que podem ser adquiridos com uma assinatura do MariaDB. Além de ajuda 24 horas com tempo máximo de resposta de 30 minutos, a assinatura oferece serviços de notificação, patches e correção de bugs. Treinamentos pagos, administração remota de banco de dados, orientação baseada em desempenho, alta disponibilidade, segurança de uso, teste de software e serviços de migração também estão inclusos. De acordo com seus representantes, a equipe de suporte do MariaDB oferece assistência profissional tanto para o sistema próprio quanto para o MySQL. Como praticamente toda a equipe de desenvolvimento do MySQL migrou para o MariaDB, este costuma dizer que tem funcionários com conhecimentos mais avançados em MySQL do que a própria Oracle.

Documentação e comunidade

O MySQL é propriedade da Oracle Corporation, que oferece extensa documentação sobre todos os projetos de código aberto MySQL. Além desta importante fonte, quem quer aprender mais sobre MySQL e seus conceitos pode acessar os seguintes conteúdos:

O MariaDB Foundation é responsável por toda a documentação relacionada ao sistema MariaDB e pelo suporte das comunidades de usuários. Caso você queira participar dos processos de desenvolvimento e documentação dos servidores MariaDB, do software de código aberto, ou do ecossistema, acesse o site oficial do MariaDB Foundation.

MariaDB vs. MySQL: Tabela de comparação

MySQL é um sistema de gerenciamento de banco de dados consagrado e disponível a qualquer usuário, por ser um software de código aberto. Diversas extensões, destinadas a empresas, só podem ser utilizadas, contudo, mediante pagamento. A equipe de desenvolvimento do MariaDB, liderada por Michael Widenius, reproduziu os componentes mais importantes do MySQL e os aprimorou, adicionando a eles novos recursos. Para que você consiga comparar ambos os sistemas com facilidade, observe os dados apontados pela nossa tabela:

Recurso MySQL MariaDB
Ano de lançamento 1995 2009
Versão atual MySQL 8.0.11 MariaDB 10.3.8
Desenvolvedor Oracle MariaDB Corporation AB (MariaDB Enterprise)

MariaDB Foundation (MariaDB Server)
Licença Sistema duplo de licença (proprietário e GPL 2) GPL 2
Sistemas operacionais Oracle Linux

Red Hat

CentOS

Oracle Solaris

Ubuntu

Debian

SUSE Enterprise Linux

Microsoft Windows

Microsoft Windows Server

Apple macOS

FreeBSD

Solaris
Red Hat/CentOS

Ubuntu

Debian

Mint

SUSE Enterprise Linux

openSUSE

Microsoft Windows Server

Microsoft Windows

Manjaro

Fedora

Arch Linux

Apple macOS
Linguagem de programação C e C++ C, C++, Bash e Perl
Modelo primário de banco de dados Relacional Relacional
Modelo secundário de banco de dados Orientado a documentos

De chave-valor
Orientado a documentos

De chave-valor

De grafos
Interface SQL Sim Sim
Interface NoSQL Sim Sim
Protocolo MySQL Protocol MySQL Protocol
Replicação Replicação com GTID (identificador de transação global)

Replicação master-master)

Replicação master-slave
Replicação com GTID (identificador de transação global)

Replicação master-master

Replicação master-slave
Suporte a banco de dados in-memory Sim Sim
Roteamento MySQL Router (GPLv2) MariaDB MaxScale (BSL)
Particionamento (fragmentação) Particionamento horizontal, fragmentação por MySQL Cluster ou MySQL Fabric Particionamento horizontal, fragmentação por Spider, CONNECT ou Galera
Gerenciamento SQL MySQL Workbench (Microsoft Windows, macOS e Linux) Webyog SQLyog (Microsoft Windows e Linux)
Monitoramento MySQL Enterprise Monitor (proprietário) Webyog Monyog (proprietário), para Microsoft Windows e Linux
Criptografia Criptografia de dados inativos

Tablespaces do InnoDB
Criptografia de dados inativos

Tablespaces do InnoDB

Tabelas do InnoDB

Arquivos de log do InnoDB

Tabelas do Aria

Conjuntos de dados temporários

Dados binários de log
Controle de acesso baseado em função (RBAC) Não Sim
Autenticação Autenticação por SHA-256 Autenticação por plugin ed25519
Mascaramento de dados Por ProxySQL Por MariaDB MaxScale (BSL)
Firewall Por MySQL Enterprise Firewall (proprietário) Por MariaDB MaxScale (BSL)
Auditoria Por MySQL Enterprise Audit Plugin (proprietário) Por MariaDB Audit Plugin
Análise Não Por MariaDB ColumnStore
Roteamento e balanceamento de cargas Por MySQL Router Por MariaDB MaxScale (BSL)
Backup Por MySQL Enterprise Backup (proprietário) Por MariaDB Backup (fork do Percona XtraBackup)
Expressão de tabela comum (CTE) Sim Sim
Funções de janela Sim Sim
Tabelas temporárias por gerenciamento de versões Não Sim
Regravação de consulta Sim Não
Tipos de dados String (CHAR, VARCHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT, ENUM, SET, BINARY, VARBINARY, JSON)

Numérico (BIT, TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT, DECIMAL, FLOAT, DOUBLE, BOOLEAN)

Data/hora (DATE, DATETIME, TIMESTAMP, TIME, YEAR)

Objeto grande (TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB)
String (CHAR, VARCHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT, ENUM, SET, BINARY, VARBINARY, JSON)

Numérico (BIT, TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT, DECIMAL, FLOAT, DOUBLE, BOOLEAN)

Data/hora (DATE, DATETIME, TIMESTAMP, TIME, YEAR)

Objeto grande (TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB)
Tipos de dados espaciais GEOMETRY

POINT

LINESTRING

POLYGON

MULTIPOINT

MULTILINESTRING

MULTIPOLYGON

GEOMETRYCOLLECTION
GEOMETRY

POINT

LINESTRING

POLYGON

MULTIPOINT

MULTILINESTRING

MULTIPOLYGON

GEOMETRYCOLLECTION
Mecanismos de banco de dados InnoDB

MyISAM

MEMORY

CSV

Archive

BLACKHOLE

Merge

Federated
InnoDB/XtraDB

MyISAM

MEMORY

CSV

Archive

BLACKHOLE

Merge

FederatedX

ColumnStore

Aria

Cassandra

CONNECT

Mroonga

MyRocks

OQGRAPH

Sequence

SphinxSE

Spider

TokuDB
Conectores oficiais ODBC

C++

C

ADO.NET

JDBC

PHP

Python

Perl

Ruby

Node.js
ODBC

C++

C

ADO.NET

JDBC

PHP

Python

Perl

Ruby

Excel

JavaScript

Swift

R

Conclusão

O MySQL é um sistema de gerenciamento de banco de dados respeitado, que desfruta de grande popularidade há mais de 20 anos. Sob o comando da Oracle, a solução pode se consolidar como um projeto de software independente, com espaço contínuo para manutenção, desenvolvimento e melhorias. No entanto, usuários que desejam explorar todas as potencialidades do ecossistema MySQL podem se deparar com as diversas limitações da edição comunitária grátis. Ferramentas profissionais de monitoramento, backup, balanceamento de cargas, roteamento e segurança de banco de dados são oferecidas somente pela versão paga.

Embora o MariaDB tenha se derivado do MySQL, hoje ele é uma solução de banco de dados autônoma, para uso profissional.

Fato

O MariaDB já está estabelecido como alternativa competitiva ao MySQL. Prova disso é que diversas distribuições Linux substituem o MySQL pelo MariaDB na instalação padrão, desde o final de 2012. Fedora, CentOS, openSUSE, Arch Linux, Debian e Red Hat Enterprise Linux são alguns dos sistemas operacionais que aderiram a essa mudança. Ainda, Google, Mozilla, Wikipedia Foundation, TeamSpeak e XAMPP também já usufruem das possibilidades do MariaDB.

O MariaDB conta com a equipe de desenvolvimento do MySQL e é fortemente apoiada pela comunidade de código aberto. Isso permite que o MariaDB Foundation disponibilize alternativas de código aberto de diversas extensões do ecossistema MySQL, que não cumprem necessariamente com todos os padrões de código aberto imaginados por Bruce Perens e Eric S. Raymond.

Vale a pena lembrar que os dois projetos analisados pela comparação MariaDB vs. MySQL devem divergir ainda mais no futuro, mesmo que hoje o MariaDB ainda seja visto como o substituto de código aberto do MySQL. Em breve, o MariaDB vai se focar no desenvolvimento de extensões e recursos exclusivos, como o MaxScale e o ColumnStore. Isso faz com que ele ganhe alguma vantagem sobre o MySQL no momento. Mesmo assim, para escolher um dos sistemas, analise o espectro de funções de cada um até descobrir qual deles melhor atende às suas necessidades.

Este artigo foi útil?
Para melhorar a sua experiência, este site usa cookies. Ao acessar o nosso site, você concorda com nosso uso de cookies. Mais informações
Page top