Todos os anos novos produtos são lançados. Na área de TI não é diferente. Já vi muita coisa boa ser lançada, reeditada, copiada… Mas, também já vi muito lixo tecnológico e “emblomation” de marketing. Nestes 34 anos de TI, já muita coisa. No mundo de banco de dados não é diferente.

O MySQL escorregou em alguns lançamentos. Mas, não é o caso desta versão 8.0 que traz algumas significativas melhorias. Na minha opinião, o que realmente conta:

Dicionário de Dados: Quem tem muitos objetos em sua instância vai entender o do que estou falando. Tenho clientes com mais de 3 milhões de objetos, e, não é divertido dar um simples SELECT no (DES)INFORMATION_SCHEMA. Travamento de instância, lentidão, LOCK (YES, LOCKS!). O novo dicionário de dados, chega em boa hora, e, parece resolver este problema.

ROLES! Nada faz mais sentido do que agrupar um monte de papéis e atribuir estes papéis a um determinado usuário, ao invés da eterna chatice de ficar atribuindo um-a-um cada privilégio de cada sujeito. Os mais malas-sem-alça, certamente, já tinha criado uma PROC para copiar privilégios. Mas, pára! Estamos nos século 21, estava na hora!

Índices invisíveis: Não entendi? Para que eu quero um índice que nem o MySQL enxerga, e, não usa em nenhuma query. Ah! Pequeno Padawan, eu explico. Nunca “dropou” um índice de uma tabela gigante, se arrependeu, e, depois ficou assistindo toda uma temporada de GoT, enquanto, recriava o maldito índice? Essa é a vantagem dos índices invisíveis. Voce coloca um índice na geladeira, se ninguém deu falta dele, após algum tempo, voce capa ele fora.

Chatice infinita no MySQL? É voce ficar dando “SET GLOBAL” isso e aquilo, e, depois ter que editar o my.cnf (ou, my.ini) para “persistir” as mudanças feitas inline. Agora com o SET PERSIST, o MySQL faz o óbvio, persiste as mudanças efetuadas via comando inline. Claro que isso só vale para variáveis dinâmicas, ou seja, aquela que permitem ser alteradas com o MySQL rodando.

SQL Parser. Esta é uma herança dos tempos de MySQL AB. A Sun comprou o MySQL em 2008 e fez de conta que nem era com ela. Aliás, não me canso de dizer que a Sun foi a pior coisa que aconteceu para o MySQL e seus usuários. Depois, em 2010, a Oracle comprou a Sun e ganhou o MySQL de brinde. Desde de 2010, a Oracle vem fazendo mudanças no “compilador interno do MySQL”, deixando-o mais leve, mais simples, mais rápido. Na versão 8.0 do MySQL, ele, sofreu grandes modificações que permitirá à Oracle, tornar, o MySQL, ainda, mais poderoso.

Custo de SQL: “Orra meu” até que enfim. O explain do MySQL era fraquinho! Me lembra aquela série de comerciais dos anos 90 do “inglês fraquinho”. Muito pouco divulgado o “profilling” até ajudava a entender a query, mas, ainda assim não dava uma boa perspectiva do “custo” da query. Não ficou lindo, nem maravilhoso, mas, o novo modelo de custo de query implementando na versão 8.0 do MySQL, é uma excelente, e, bem vinda iniciativa.

E tem muito mais. Fazia tempo que eu não me empolgava tanto com um lançamento de um produto, sobretudo, o MySQL. Ainda, não está em produção, e, acredito que isso deva acontecer entre Abril/2017 e Junho/2017, mas, já dá uma dimensão do que a Oracle pretende com o MySQL: frear o crescimento do SQL Server.

As versões do SQL Server 2012, 2014 e 2016 elevaram o SQL Server a um servidor de banco de dados de respeito. Resultado: crescimento de 65% na base instalada nos últimos 4 anos. Atualmente, Oracle DB está em 1o lugar, seguido muito de perto pelo MySQL, que, está em 2o lugar, e, da cola, com pé no acelerador está o SQL Server, em, 3o lugar. Oracle DB não perdeu a majestade, mas, viu sua base de usuários perder quase 12% em 4 anos. MySQL, continuou, crescendo, mas, em números mais singelos que os observados entre 2000~2010.

Resumo da Ópera: A Oracle seguiu o caminho da Harley-Davidson, e, escutou seus clientes, e, fez mudanças radicais debaixo do capô, mas, também incluiu tudo aquilo que já era pedido (e quase implorado) há alguns anos. A Harley respondeu ao mercado com o Projeto Rushmore, a, Oracle respondeu com o MySQL 8.0.

E por que diabos 8.0? Certamente, o 8, vem da sequencia de 5.7, então, 5.8. E, por que o 8 saiu lá de trás, e, veio para a frente? Não me admiraria que daqui um tempo teremos o Oracle 15, e, concomitantemente, o MySQL 15. Sacou? Ou quer que eu desenhe?

De qualquer forma, este post é só um teaser, vamos testar mais esta nova versão, e, publicar as novidades