LinkedIn desenvolve a ferramenta MySQL Query Analyzer

LinkedIn desenvolve a ferramenta MySQL Query Analyzer

22 de outubro de 2017 1 Por Ramos de Souza Janones
Do Zero ao Profissional com PHP. Mais de 2.300 alunos recomenda.Powered by Rock Convert

Para otimizar o desempenho de suas instâncias MySQL, o LinkedIn criou a ferramenta MySQL Query Analyzer com o intuito de analisar e ajustar queries custosas. A ferramenta é executada na camada de rede, armazenando tudo em um servidor centralizado e fornecendo uma interface de usuário (UI) para análise de métricas.

O LinkedIn administra uma arquitetura MySQL multi-inquilinos (do inglês multi-tenancy). Isto ocorre principalmente pelo fato de haver mais de 500 aplicativos que dependem dessa arquitetura, de modo que um único inquilino (tenancy) causaria custos de recursos extremamente elevados. Como consequência desta abordagem, as queries de um aplicativo podem afetar o desempenho de outro aplicativo. Por esse motivo, é importante que os aplicativos sejam capazes de compreendê tais consultas e otimizá-las o máximo possível.

O analisador de queries é dividido em três componentes:

  1. Agente: é executado nos nós do MySQL e coleta métricas sobre a execução e desempenho de queries.
  2. Servidor centralizado: local onde todos os dados sobre consultas são armazenados para a geração de relatórios.
  3. Interface de Usuário (UI): fica no topo do servidor e fornece uma interface amigável para analisar os dados.

Karthik Apigatla, engenheiro sênior de banco de dados no LinkedIn, destaca os benefícios da ferramenta da seguinte maneira:

… permite que nossos engenheiros de banco de dados identifiquem queries problemáticas de uma só vez, para comparar as informações de uma query semana a semana e para solucionar problemas de desaceleração da base de dados de forma rápida e eficiente.

Originalmente, soluções como o MySQL Performance Schema e o Slow Query Log foram consideradas, mas elas vieram com muitas penalidades de desempenho quando foram introduzidas. Ao contrário dessas ferramentas, o Query Analyzer é executado na camada de rede, minimizando qualquer tipo de impacto de desempenho nas instâncias.

O agente captura pacotes brutos de queries e reconstrói a query usando os protocolos MySQL e, em seguida, calcula os tempos de resposta com base em uma diferença entre o tempo em que os pacotes entram pela primeira vez na porta e quando são produzidos pela resposta do banco de dados.

Leia também: Os cursos online de programação e tecnologia mais recomendados para 2019

A UI fornece uma visão tabular de queries distintas para hosts, permitindo que o usuário filtre por períodos de tempo. As consultas individuais também podem ser selecionadas, fornecendo gráficos e outras métricas úteis, como carga e tempo médio.

A ferramenta também fornece uma métrica de carga de query que é calculada como “tempo de execução * número de execuções”. Ao obter essa métrica e convertê-la em uma proporção, ela pode ser comparada com outras queries para ver quais obtiveram a maior porcentagem de carga. Por exemplo, mesmo se uma consulta demorar alguns milissegundos, a métrica ainda seria correta se a query estivesse sendo executada muitas vezes, levando assim a maior parte da carga.

O LinkedIn não definiu uma linha de tempo específica, mas pretende abrir a ferramenta em um futuro próximo.

Banco de dados

Artigos e dicas sobre banco de dados que você vai gostar:

MongoDB

– Principais diferenças entre MongoDB e MySQL ou outro RDBMS

– Southbank Software apresenta dbKoda: uma ferramenta de desenvolvimento Open Source para MongoDB

MySQL e Instruções SQL em geral

– SQL e Regex – Entenda quando e como usar em instruções SQL

– MySQL – Manter o formato Date e DateTime em formato dd/mm/Year e dd/mm/Year:HH:mm:ss

– SQL – O que são VIEWS SQL, vantagens e desvantagens

– Instrução Insert MySQL e JSON com todos os bancos brasileiros

– PHP e MySQL – Entendendo as codificações iso-8859-1 e UTF-8 e outras

– Como redefinir a senha de root do MySQL ou do MariaDB

– Para que serve uma MySQL Transaction?

– Banco de Dados – Índices desnecessários no banco são um problema?

– Entenda a diferença entre LIKE, IN e BETWEEN no MySQL

– LinkedIn desenvolve a ferramenta MySQL Query Analyzer

– Como otimizar consultas MySQL

– Quando é interessante desnormalizar o banco de dados?

– Entenda Views em SQL, vantagens e desvantagens

– O que é normalização de banco de dados

– Por que não devemos usar funções do tipo mysql_*

SQL – Entenda as diferenças entre aspas simples e duplas

– SQL – Not IN ou Not EXISTS quando usar?

– SQL – Entendendo JOINS

– PHP Do Zero Ao Profissional – Análise do Curso

Powered by Rock Convert

Ramos de Souza Janones

Janones, é um empreendedor brasileiro apaixonado por empreendedorismo e tecnologia. Ao longo dos anos trabalhando com o desenvolvimento de softwares desktop desde a linguagem Clipper, passando pelo Delphi e atualmente com Java.

Optou pela formação de Publicidade e Marketing por sua segunda empresa de tecnologia ter participado do "boom" da internet nos anos 90 e na procura de melhorar seus conhecimentos em negócios.

Em razão da principal formação e profundos conhecimentos em programação e banco de dados, é capaz de realizar o desenvolvimento de aplicativos web, desktop e mobile com maior criatividade e inovação que profissionais de desenvolvimento com uma formação única e mais especifica, dedicada somente ao desenvolvimento de softwares.

Com toda sua experiência com empresas de software, sua formação e paixão por negócios escreveu o livro "Marketing para Empresas e Profissionais de Software", publicado pela editora carioca Ciência Moderna em 2012. Além de outros livros sobre programação.

Últimos posts por Ramos de Souza Janones (exibir todos)

Sumário
LinkedIn desenvolve a ferramenta MySQL Query Analyzer
Nome do artigo
LinkedIn desenvolve a ferramenta MySQL Query Analyzer
Descrição
Para otimizar o desempenho de suas instâncias MySQL, o LinkedIn criou a ferramenta MySQL Query Analyzer com o intuito de analisar e ajustar queries custosas. A ferramenta é executada na camada de rede, armazenando tudo em um servidor centralizado e fornecendo uma interface de usuário (UI) para análise de métricas.
Autor
Nome
Ramos da Informática
Logo