Uma nova era de inovação contínua chegou para os usuários do MariaDB! A MariaDB Foundation anunciou o lançamento do MariaDB 12.1, a mais recente “rolling release” que promete turbinar a performance, expandir a compatibilidade SQL e introduzir ferramentas de otimização de consultas essenciais para desenvolvedores e administradores de banco de dados.
Diferente das versões tradicionais com lançamentos pontuais, o MariaDB 12.1 adota um modelo de “rolling release”, o que significa que ele é uma evolução contínua da versão 12.0, incorporando diversas funcionalidades completamente novas de forma progressiva. Essa abordagem garante que os usuários tenham acesso rápido às últimas inovações e melhorias assim que elas são desenvolvidas.
Este artigo fará um mergulho detalhado nas principais novas features do MariaDB 12.1, explorando como os avanços em desempenho, as novas opções de compatibilidade e os aprimoramentos no otimizador de consultas beneficiarão suas aplicações e a gestão de seus dados.
Melhorias de performance: MariaDB 12.1 mais rápido e eficiente
As otimizações de desempenho são sempre um dos pilares de qualquer nova release de banco de dados, e o MariaDB 12.1 não decepciona. As equipes de desenvolvimento implementaram diversas melhorias focadas em acelerar operações críticas e otimizar o uso de recursos.
Cache de chaves segmentado para Aria (MDEV-24)
Uma das principais novidades é a introdução de um cache de chaves segmentado para Aria. O Aria é o motor de armazenamento padrão do MariaDB, usado para tabelas internas e temporárias. Ao segmentar o cache de chaves, o banco de dados pode lidar com acessos concorrentes ao cache de forma mais eficiente.
Melhorias de escalabilidade MDL (MDEV-19749)
O MariaDB 12.1 traz aprimoramentos significativos na escalabilidade de MDL (Metadata Lock). Bloqueios de metadados podem se tornar gargalos em ambientes com alta concorrência de operações que modificam a estrutura do banco de dados (DDL) ou acessam muitos objetos. Essas melhorias visam reduzir a contenção e permitir que mais operações sejam executadas em paralelo.
Replicação paralela para réplicas Galera (MDEV-20065)
Para usuários que dependem da replicação Galera para alta disponibilidade e escalabilidade, o MariaDB 12.1 introduz a replicação paralela para réplicas Galera. Anteriormente, a replicação para as réplicas Galera era principalmente serial, o que podia limitar o throughput em clusters muito ativos. Com a paralelização, as operações de escrita nas réplicas podem ser aplicadas de forma mais rápida.
Log bufferizado para Audit Plugin (MDEV-34680)
O Audit Plugin (plugin de auditoria) do MariaDB agora conta com log bufferizado. Isso significa que as informações de auditoria são escritas para um buffer em memória antes de serem persistidas no disco.
Cálculos de distância de vetor mais rápidos via extrapolação (MDEV-36205)
O MariaDB 12.1 apresenta cálculos de distância de vetor mais rápidos através da extrapolação. Embora o uso específico não seja detalhado nas notas, essa melhoria é relevante para cargas de trabalho que envolvem comparações de similaridade entre vetores, comuns em aplicações de Inteligência Artificial (IA), machine learning (ML) e busca vetorial.
Funcionalidades de compatibilidade: integrando-se a diversos ecossistemas
O MariaDB 12.1 continua a investir em compatibilidade para facilitar o desenvolvimento e a migração de aplicações, bem como a interação com outros sistemas.
Plugin caching_sha2_password (MDEV-9804)
Um dos recursos de compatibilidade mais importantes é a inclusão do plugin caching_sha2_password
. Este plugin, que se tornou o padrão no MySQL 8.0, é um método de autenticação robusto e seguro. Sua presença no MariaDB 12.1 facilita a interoperabilidade e a migração de aplicações que foram desenvolvidas ou exigem o MySQL 8.0 ou versões posteriores.
Sintaxe de outer join (+) (MDEV-13817)
O MariaDB 12.1 agora suporta a sintaxe (+)
para outer join. Esta é uma sintaxe legada, mas ainda utilizada por alguns sistemas de banco de dados proprietários, como o Oracle Database.
Variável rpl_semi_sync_master_wait_for_slave_count (MDEV-18983)
Adicionada a variável rpl_semi_sync_master_wait_for_slave_count
para replicação semi-síncrona.
Arrays associativos: DECLARE TYPE .. TABLE OF .. INDEX BY (MDEV-34319)
O MariaDB 12.1 introduz suporte para arrays associativos com a sintaxe DECLARE TYPE .. TABLE OF .. INDEX BY
. Essa funcionalidade, comum em linguagens PL/SQL (como no Oracle Database), permite declarar tipos de dados de coleção onde os elementos são indexados por uma chave (em vez de um índice numérico sequencial).
DROP USER falha se o usuário tem sessão ativa (MDEV-35617)
Uma alteração na funcionalidade de gerenciamento de usuários: o comando DROP USER
agora falha se o usuário que está sendo removido tiver uma sessão ativa. Essa mudança visa prevenir problemas de segurança e integridade de dados ao tentar remover um usuário que ainda está interagindo com o banco de dados.
Otimizador de consultas: mais controle para DBAs
O MariaDB 12.1 oferece um controle mais refinado sobre o otimizador de consultas, permitindo que os DBAs (administradores de banco de dados) ajustem o comportamento das queries para obter melhor desempenho.
Optimizer hints: [NO_]JOIN_INDEX, [NO_]GROUP_INDEX, [NO_]ORDER_INDEX, [NO_]INDEX (MDEV-35856)
Novos optimizer hints foram adicionados para controlar o uso de índices em operações de JOIN, GROUP BY e ORDER BY: [NO_]JOIN_INDEX
, [NO_]GROUP_INDEX
, [NO_]ORDER_INDEX
e [NO_]INDEX
.
Optimizer hints: [NO_]SPLIT_MATERIALIZED (MDEV-36092)
Adicionados os hints [NO_]SPLIT_MATERIALIZED
. A materialização é um processo onde o resultado de uma subconsulta ou view é armazenado temporariamente para ser reutilizado.
Optimizer hints: [NO_]DERIVED_CONDITION_PUSHDOWN, [NO_]MERGE (MDEV-36106)
Novos hints [NO_]DERIVED_CONDITION_PUSHDOWN
e [NO_]MERGE
foram incluídos. O condition pushdown é uma otimização onde as condições de um WHERE
são “empurradas” para mais cedo na execução da consulta.
Suporte para índices funcionais em GROUP/ORDER BY (MDEV-36132)
O MariaDB 12.1 agora suporta índices funcionais em GROUP BY e ORDER BY. Índices funcionais permitem indexar o resultado de uma função ou expressão.
Incluir definições de tabelas e views no optimizer trace (MDEV-36483)
O optimizer trace (rastreamento do otimizador) agora inclui as definições completas de tabelas e views.
Outras melhorias e recursos miscelâneos
Tentar aplicar novamente conjuntos de escrita em nós Galera (MDEV-36077)
O MariaDB 12.1 agora tenta aplicar novamente os write sets em nós Galera. Essa melhoria visa aumentar a resiliência e a estabilidade da replicação Galera em caso de falhas transitórias.
Suporte a curingas em mariadb-dump (MDEV-21376)
O utilitário mariadb-dump
agora suporta curingas (wildcards).
Nomes de restrição FOREIGN KEY por tabela únicos (MDEV-28933)
Agora é possível ter nomes de restrição FOREIGN KEY
únicos por tabela.
Remover limite de profundidade de funções JSON (MDEV-32854)
O limite de profundidade das funções JSON foi removido.
Conclusão: MariaDB 12.1 – inovação contínua para um banco de dados open source de ponta
O MariaDB 12.1 reafirma o compromisso da MariaDB Foundation com a inovação contínua, entregando uma “rolling release” recheada de melhorias que impactam diretamente a performance, a compatibilidade e a capacidade de otimização de consultas. Com otimizações como o cache de chaves segmentado para Aria e a replicação paralela para Galera, juntamente com novas features de compatibilidade SQL e optimizer hints poderosos, o MariaDB 12.1 se posiciona como uma escolha de ponta para aplicações modernas e cargas de trabalho exigentes.
Esta versão não apenas atende às necessidades atuais dos desenvolvedores e DBAs, mas também antecipa tendências, garantindo que o MariaDB continue sendo um banco de dados open source robusto, flexível e de alto desempenho para o futuro.
Chamada à ação: Para aproveitar o máximo do MariaDB 12.1 e impulsionar suas aplicações, certifique-se de manter seu sistema atualizado! Para mais notícias, análises e guias sobre MariaDB, MySQL e o universo de banco de dados open source, continue acompanhando o SempreUpdate!