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.
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 |
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.
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.
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.
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:
- MySQL Cluster
- MariaDB Galera 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.
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.
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.
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.