DevSecOps

31 mai, 2017

MySQL 8.0 remove suporte para query cache

Publicidade

Embora o MySQL query cache tenha sido criado para melhorar o desempenho, ele tem sérios problemas de escalabilidade e pode facilmente se tornar um estrangulamento severo. Assim, a equipe de desenvolvimento do MySQL decidiu encerrar o suporte para o query cache.

O MySQL query cache é um cache de resultados de consulta. Ele compara as consultas recebidas que começam com SEL em uma tabela de hash e, se houver uma correspondência, retorna os resultados da execução anterior da consulta.

Ele está desativado por padrão desde o MySQL 5.6 (2013), já que é conhecido por não escalar com cargas de trabalho de alto rendimento em máquinas multicore.

Supondo que a escalabilidade possa ser melhorada, o fator limitante do query cache é que, uma vez que apenas as consultas que atingem o cache verão melhorias, é improvável que melhore a previsibilidade do desempenho.

[awprm urls=https://imasters.com.br/noticia/microsoft-lanca-azure-database-para-mysql-e-postgresql/,https://imasters.com.br/cursos/webinars/analise-e-otimizacao-de-queries-no-mysql/]

Assim, a equipe de desenvolvimento considerou quais as melhorias poderiam fazer no query cache versus otimizações, o que forneceria melhorias em todas as cargas de trabalho. Embora essas escolhas sejam ortogonais, os recursos de engenharia são finitos, ou seja, eles estão mudando de estratégia para investir em melhorias que são mais aplicáveis a todas as cargas de trabalho.

Com as limitações observadas, o query cache continuará sendo suportado durante a vida útil do MySQL 5.7. O MySQL 8.0 já não o suporta, e os usuários fazendo upgrade serão encorajados a utilizar Server-side Query Rewrite ou ProxySQL como cache man-in-the-middle.

Mais informações estão disponíveis neste link.