O MySQL é um dos sistemas de banco de dados mais populares do mundo e está em constante evolução. A sua atualização para a versão MySQL 8 recebeu diversas funcionalidades que agradaram à maioria dos desenvolvedores. E é justamente sobre essa nova versão que iremos tratar nesse artigo!
O MySQL
O MySQL é um sistema de gerenciamento de banco de dados com código aberto (open source) que possui uma interface simples e com a capacidade de rodar em diferentes Sistemas Operacionais. Ele é desenvolvido, distribuído e suportado pela Oracle Corporation.
Apesar de uma grande diversidade de Sistemas de Gerenciamento de Banco de Dados (SGBDs) no mercado, o MySQL ganhou grande destaque, principalmente entre desenvolvedores de aplicações para Web. Se você é desenvolvedor Web, provavelmente já utilizou o PHPMyAdmin, que nada mais é que um aplicativo de Código Livre para administrar o MySQL através da Internet.
Essa popularidade se deve ao MySQL possuir características muito satisfatórias em performance, confiabilidade e facilidade de uso. Além disso, está sempre se atualizando e busca estar sempre alinhado as necessidades do mercado.
O MySQL utiliza a linguagem SQL (Structured Query Language ou linguagem de consulta estruturada) que é a linguagem mais popular para interagir com banco de dados.
Você pode ler mais sobre os recursos do MySQL através da documentação oficial que disponibilizam em seu site.
A versão 8.0 do MySQL
Na sua versão anterior, a 5.7, a atualização foi um pouco criticada, pois, não apresentou grandes melhorias em relação as anteriores. Mas ainda assim, o MySQL continuava sempre crescendo, porém muitos consideravam que estava crescendo em passos lentos. Era possível perceber que seus concorrentes estavam apresentando muitas novidades e até mesmo vantagens em relação ao MySQL. Porém, mesmo com essa situação, o MySQL permaneceu entre os SGBDs mais populares do mercado.
Com as necessidades do mercado se atualizando rapidamente, os desenvolvedores começaram a demandar algumas funcionalidades que faltavam ou estavam ultrapassadas no MySQL. Dessa forma, surge então uma nova versão: o MySQL 8, lançado em abril de 2018. Sim, isso mesmo, ele pulou da versão 5.7 para 8.
Essa nova versão prometia corrigir muitos problemas encontrados pelos desenvolvedores, assim como trazer novas funcionalidades.
O MySQL 8 é considerado por muitos como uma das atualizações mais significativas que este SGBD já recebeu. Portanto, o MySQL 8.0 recebeu diversos novos recursos que fazem muita diferença na implementação e manutenção de aplicativos web dentro dos padrões atuais de desenvolvimento.
Principais recursos do MySQL8
Neste capítulo, você poderá encontrar os principais recursos e novidades do MySQL 8.
Performance
Uma das novidades do MySQL 8 que ganhou muito destaque é a sua diferença de performance.
O MySQL 8 está apresentando excelentes resultados de performance se comparado aos seus antecessores e também aos seus concorrentes.
Estima-se que a nova versão possuí uma performance até 2x mais rápida que a sua versão anterior, a 5.7. Isso pode ser comprovado em sua impressionante capacidade de consultas por segundo. O MySQL8 consegue realizar até 1,8 milhão de consultas por segundo.
O MySQL 8 possuí um desempenho melhorado para cargas de trabalho de leitura e gravação e, também, para cargas de trabalho de “ponto de acesso” de alta contenção.
Outra grande novidade que auxilia muito na performance é a sua forma de Gestão de Recursos através do novo recurso Resource Group. O MySQL agora suporta a criação e gerenciamento de grupos de recursos. Portanto, ele permite a atribuição de threads em execução no servidor para grupos específicos, de forma que as threads executem de acordo com os recursos disponíveis para o grupo. Ou seja, esse recurso permite ao usuário uma opção capaz de otimizar o desempenho conforme disponibilidade de Hardware, distribuindo a carga de trabalho conforme a necessidade de cada “grupo”.
InnoDB
A partir do MySQL 8, uma das grandes novidades é que o InnoDB passou a ser o cidadão de primeira classe padrão do MySQL. Ou seja, toda a estrutura do MySQL está baseada agora em InnoDB e isso muda muita coisa.
Claro que, se você já lida com o MySQL há muito tempo, sabe que algumas versões anteriores já possuíam a capacidade de integração com o InnoDB, mas isso exigia de técnicas mais avançadas, não sendo tão simples para um desenvolvedor iniciante e estudantes.
Agora, o InnoDB já vem como engine padrão do MySQL 8. Lembrando que versões mais antigas, como o MySQL5.5 e inferiores, utilizavam como padrão a engine MyISAM. Você pode dar uma olhada em nossa artigo sobre as diferenças entra o InnoDB e o MyISAM para entender melhor sobre eles.
Resumidamente, o InnoDB é uma engine de armazenamento que consegue equilibrar a alta confiabilidade com o alto desempenho. Portanto, só com essa frase já podemos entender o quanto a sua adoção pelo MySQL é benéfica.
Graças ao InnoDB, o MySQL 8 passa a lidar com tabelas transacionais, acabando com a maioria das limitações das tabelas não transacionais, padrões das versões anteriores do MySQL.
Dicionário de Dados Transacionais
Até a versão 5.7 do MySQL, os dados do dicionário eram armazenados em arquivos de metadados e tabelas de sistemas não transacionais.
Isso trazia uma série de problemas, pois, atualmente não é raro empresas possuírem uma séria de dados com milhares ou milhões de objetos e instâncias, por exemplo. Portanto, um simples SELECT no INFORMATION_SCHEMA era capaz de gerar muita lentidão, travamentos de instâncias e até mesmo Locks.
Portanto, o MySQL 8 trouxe consigo uma atualização em seu dicionário de Dados, incorporando um dicionário de dados globais contendo informações sobre Objetos de Bancos de dados em tabelas transacionais.
Com isso, podemos ver uma unificação de APIs com as informações do Banco de Dados.
Outra grande vantagem é o sistema de Cache que melhorou bastante, trazendo uma desempenho muito significativo.
A partir do MySQL8, todas as operações de DDL passaram a ser atômicas e transacionais. Os próprios Metadados passaram a ser versionados através da estrutura do InnoDB
Maior Compatibilidade e UTF-8
Anteriormente, um dos grandes problemas que os desenvolvedores encontravam no MySQL era a pouca compatibilidade com o UTF-8. Trabalhar com encodamento e acentuação de palavras acabava se tornando um grande problema.
Porém, atualmente, com o MySQL 8, esse problema foi praticamente resolvido. Houve um grande esforço para aumentar o suporte ao UTF-8 no MySQL 8, que é o padrão de codificação mais utilizado na Web. Portanto, a nova versão traz como padrão de caracteres o modelo “utf8mb4″.
Com isso, os problemas que a maioria dos usuários encontrava ao lidar com encodamento e acentuação deverão ser minimizados. Vale ressaltar ainda que o unicode utilizado por esse padrão suporta conjuntos de caracteres não ocidentais e, até mesmo, alguns emojis, que estão ganhando cada vez mais espaço no mundo digital.
Índices invisíveis no MySQL 8
Os índices sempre foram muito utilizados por Desenvolvedores para facilitar localização de colunas dentro de tabelas, otimizando as consultas. Uma das grandes novidades do MySQL 8 é a possibilidade de alterar a visibilidade de um índice entre visível ou invisível.
Dessa forma, ao tornar um índice invisível, se torna muito mais fácil realizar testes no banco de dados. Portanto, a partir do MySQL 8, podemos então criar índices invisíveis.
Os índices invisíveis funcionam como índices normais, porém, não podem ser “enxergados” pelo otimizador do MySQL. Isso significa que o índice continuará existindo, porém, não poderá ser utilizado em nenhuma consulta. Dessa forma, podemos verificar rapidamente se adicionar ou remover um índice em uma tabela do banco de dados resultará em algum problema. Portanto, bastaria alterar a visibilidade do índice para realizar o teste. Ou seja, você poderá realizar os testes de maneira mais rápida e segura.
Dessa forma você pode evitar grandes problemas que encontrávamos nas versões anteriores do MySQL para esses tipos de testes. Por exemplo, ao colocar um índice como invisível, se notar alguma degradação da performance, bastará apenas alterá-lo para visível e tudo voltará ao normal, não precisando reconstruí-lo do zero.
Vale ressaltar que podemos manipular um índice de três formas diferentes: Ao criar uma tabela, ao criar um índice ou ao alterar uma tabela. Para todos os casos, basta acrescentar a palavra INVISIBLE ao índice e ele passará a ser um índice invisível. Por exemplo, no comando SQL abaixo para alterar uma tabela:
ALTER TABLE users ADD INDEX username_index (username) INVISIBLE;
Inclusão de Roles a partir do MySQL 8
Na nova versão do MySQL, foi incluído as Roles. Esta novidade é muito útil principalmente para quem precisa gerenciar acesso a recursos no Banco de Dados.
De forma resumida, “Roles”significa “funções”. Portanto, através da Roles você pode definir privilégios para os usuários. Ou seja, você pode limitar ou liberar o que cada usuário pode acessar e executar dentro de um banco de dados.
Com isso, podemos economizar tempo, criando nossas Roles e ao adicionar novos usuários apenas atribuí-los a role com as funções que ele deve possuir. Dessa forma, ao alterar as permissões de uma role, você estará alterando a permissão de todos os usuários pertencentes a essa role de uma só vez.
Antes você precisaria alterar cada usuário separadamente ou através de scripts, agora basta um alteração na Role e já estará tudo resolvido.
Integração com JSON
Atualmente, o JSON está sendo cada vez mais utilizado pelos desenvolvedores. Ele tem se popularizado cada vez mais, já sendo considerado um dos sucessores do XML.
Com o JSON, você pode realizar a transferência de dados e informações entre servidores de forma simples e rápida. E melhor ainda: utilizando apenas objetos em linguagem JavaScript.
O MySQL 8 recebeu suporte ao tipo de dados JSON. Isso nos permite realizar diversas funções relacionadas ao armazenamento de múltiplas informações e transações de dados entre servidores de forma facilitada e natural.
Integração com o GIS no MySQL 8
A cada dia, surgem novas aplicações que utilizam coordenadas geográficas para executar diversas atividades. Como exemplo disso, podemos pensar em aplicativos famosos como o Ifood, o UBER ou até mesmos os sistemas de anúncios que utilizam geolocalização para gerenciar possíveis públicos.
Portanto, a equipe responsável pelo MySQL trouxe uma grande novidade que deve agradar a todos. O MySQL 8 já oferece suporte ao GIS, capaz de utilizar coordenadas geográficas através de sistemas referências espaciais. Desta forma o MySQL 8 pode “compreender” coordenadas de latitude e longitude e consegue facilitar a realização de cálculos precisos envolvendo dois ou mais pontos. Por exemplo, você pode calcular a distância entre dois pontos através dos diversos sistemas de referência espacial suportado.
Funções de Janela no MySQL 8
Específica da Linguagem SQL, uma novidade bastante aguardada pelos desenvolvedores era a inclusão das funções de janela (window Functions).
As Funções de Janelas são um conjunto de funções que se aplicam a um conjunto de registros. Ou seja, com elas podemos resolver diversos problemas comuns ao trabalharmos com agrupamento de dados. Portanto, as funções de Janelas permitem realizar diversas tarefas de forma mais fácil e intuitiva do que nas versões anteriores do MySQL.
Open SSL
Quando se trata de segurança, o MySQL 8 incluiu o OpenSSL como biblioteca padrão de seus protocolos TLS/SSL.
Portanto, o MySQL teve uma melhoria significativa em seus padrões de segurança, além de maior proteção para o acesso ao Banco de Dados.
MySQL 8 disponível na HomeHost
Visando melhorar cada vez mais a qualidade e segurança dos nossos servidores, a HomeHost agora está com a versão do MySQL 8.
Agora você já pode instalar a nova versão do MySQL e utiliza-la nos nossos servidores de Hospedagem! Então aproveite a oportunidade e não fique de fora dessa evolução!
Experimente utilizar o MySQL8 e veja na prática as diversas melhorias que citamos nesse artigo. Com certeza, você não vai mais querer voltar para outras versões, de tão bom que está. E o melhor de tudo é que você poderá ter uma Hospedagem de qualidade, com servidores de alta tecnologia e com preço melhor ainda!
Aproveite e leia nosso artigo sobre como criar um banco de dados através do Painel Direct Admin. Você pode ainda aproveitar e ler o artigo sobre como criar um Banco de Dados utilizando o cPanel!
Disponibilizamos planos para todos os perfis de usuários, então acesse agora mesmo a página inicial da HomeHost e confira nossas ofertas.
Conclusão
Com a leitura desse artigo, você já poderá entender as principais novidades do MySQL 8. E se você já é um desenvolvedor, provavelmente já conseguiu captar as melhorias que essa nova versão trouxe ao MySQL.
Claro que este artigo apenas apresenta algumas informações, houve outras diversas mudanças nessa atualização as quais não citamos aqui. Portanto, se deseja conhecer a fundo todas as novidades do MySQL8, recomendamos a leitura das Notas da Versão (Release) do MySQL 8, disponibilizados no site oficial.
Por fim, não deixe de aproveitar a possibilidade de utilizar o MySQL 8 agora também na HomeHost! Escolha um plano de Hospedagem e coloque suas ideias em prática agora mesmo!