Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

10 dicas úteis sobre o ajuste de desempenho do MySQL


Como todos os outros bancos de dados, o MySQL pode ser complicado e pode parar a qualquer momento, colocando todos os seus negócios e tarefas em risco. No entanto, erros comuns são a base da maioria dos problemas que afetam o desempenho.

Para garantir que seu servidor opere com eficiência e eficácia, fornecendo desempenho estável e consistente, você deve eliminar os erros geralmente causados ​​por alguma sutileza na carga de trabalho ou na armadilha de configuração.

À medida que o volume de dados cresce, torna-se cada vez mais complexo. Portanto, é essencial otimizar bem os bancos de dados para oferecer uma experiência eficiente ao usuário final. O ajuste de desempenho do MySQL é a solução definitiva, pois ajudará a fornecer soluções para esses problemas de banco de dados.

Ajuste de desempenho do MySQL


Neste artigo, você encontrará algumas dicas úteis sobre como usar o ajuste de desempenho do MySQL. Isso ajudará você a obter o melhor desempenho do seu MySQL.

Etapa 1:não use o MySQL como uma fila


Sem a sua percepção, filas e padrões semelhantes a filas podem se infiltrar em seu aplicativo. Um exemplo típico é marcar emails como não enviados, enviá-los e marcá-los como enviados. esse é um problema comum, mas raramente imperceptível, que a maioria dos usuários tende a ignorar.

Eles causam duas grandes complexidades de desempenho:
  1. Eles serializam sua carga de trabalho, evitando que as tarefas sejam concluídas em sequência paralela. Além disso, eles geralmente resultam em uma tabela que contém trabalho em andamento e dados históricos de trabalhos que foram processados ​​há muito tempo. Isso geralmente diminui a velocidade de processamento e o processo.
  2. Ambos adicionam latência ao aplicativo e carregam no MySQL.

Etapa 2:crie um perfil de sua carga de trabalho


A criação de perfil de sua carga de trabalho é essencial, pois ajuda você a entender como seu servidor funciona e o tempo que ele gasta processando tarefas. A melhor ferramenta para ajudá-lo a fazer isso é o MySQL Enterprise Monitors Query Analyzer do kit de ferramentas Percona.

Observação: Disponível apenas para usuários Linux

As ferramentas podem capturar as consultas executadas pelo servidor e retornar uma tabela de tarefas ordenadas em ordem decrescente de tempo de resposta.

A criação de perfil de sua carga de trabalho expõe as consultas mais caras para ajustes adicionais. O tempo é mais crítico porque o importante é a rapidez com que ele é concluído ao emitir uma consulta.

As ferramentas de perfil também agrupam consultas semelhantes, o que permite ver as consultas lentas e rápidas, mas são executadas muitas vezes.

Etapa 3:Entendendo os quatro recursos fundamentais


A CPU, a memória, o disco e a rede são os quatro recursos fundamentais necessários para o funcionamento de um banco de dados. Portanto, é provável que o banco de dados tenha um desempenho ruim se algum desses recursos estiver sobrecarregado, fraco ou irregular.

Você deve sempre garantir que todos os quatro recursos mencionados sejam fortes e estáveis ​​para que o MySQL funcione perfeitamente. As organizações geralmente escolhem os servidores com CPUs e discos rápidos que podem acomodar mais slots de memória.

Adicionar memória é uma maneira barata e fácil de aumentar o desempenho em ordens de magnitude, especialmente em cargas de trabalho vinculadas a disco. Isso pode parecer irracional, mas muitos discos são superutilizados, pois não há memória suficiente para armazenar o conjunto de dados de trabalho do servidor.

Ao solucionar problemas, verifique cuidadosamente o desempenho e a utilização de todos os quatro recursos para ajudar a determinar as estatísticas de desempenho dos quatro recursos. Monitorar seu desempenho é importante, pois ajuda o usuário a saber o que deve ser melhorado ou precisa ser substituído. Você pode experimentar este método, pois é um dos métodos mais rápidos para resolver problemas de desempenho no MYSQL.

Etapa 4:filtre os resultados pelo mais barato primeiro


Uma excelente maneira de otimização é fazer o trabalho barato e impreciso primeiro, depois o trabalho difícil e preciso no menor, resultando no conjunto de dados.
Exemplo:

Suponha que você esteja procurando algo dentro de um determinado raio de um ponto geográfico. A primeira ferramenta na caixa de ferramentas do meu programador é a fórmula Haversine {Grande círculo} para calcular a distância ao longo da superfície de uma esfera.

O problema com a técnica é que a fórmula requer muitas operações trigonométricas, que são muito sensíveis à CPU. Como resultado, os cálculos tendem a ser executados lentamente e fazem a utilização da CPU da máquina disparar.

Antes de usar a fórmula, reduza seus registros a um pequeno subconjunto do total e reduza o conjunto resultante a um círculo preciso. O quadrado que contém o círculo, seja com precisão ou imprecisão, é uma maneira fácil de fazer isso. Isso garante que o mundo fora do quadrado nunca seja atingido por todas essas funções trigonométricas caras.

Etapa 5:conhecer e entender as duas armadilhas mortais da escalabilidade.


A escalabilidade pode não ser tão vaga quanto muitos acreditam. Em vez disso, existem definições matemáticas precisas de escalabilidade expressas como equações que destacam por que os sistemas não escalam tão bem quanto deveriam.

A Lei de Escalabilidade Universal é uma definição útil para expressar e quantificar as características de escalabilidade dos sistemas. Ele explica problemas de dimensionamento em termos de serialização e crosstalk, que são os dois custos fundamentais.

Os processos paralelos que devem parar para que algo serializado ocorra são inerentemente limitados em sua escalabilidade. Além disso, se os processos paralelos precisam se comunicar uns com os outros para coordenar seu trabalho, eles se limitam. Portanto, é preferível evitar serialização e crosstalk para permitir que seu aplicativo seja dimensionado de forma rápida e eficiente.

Etapa 6:não se concentre muito na configuração


As pessoas gastam muito tempo ajustando as configurações. O resultado geralmente não é uma melhora significativa e às vezes pode ser muito prejudicial. As configurações padrão que acompanham o MySQL são de tamanho único e desatualizadas, você não precisa configurar nada.

Portanto, é essencial acertar o básico e alterar as configurações somente se necessário. Em vários casos, as ferramentas de ajuste de servidor não são recomendadas porque podem enganar os usuários com informações contraditórias. Alguns têm conselhos perigosos e imprecisos codificados neles, como taxas de acerto de cache e fórmulas de consumo de memória.

Etapa 7:fique atento às consultas de paginação


Os aplicativos que paginam geralmente deixam o servidor de joelhos. As otimizações geralmente podem ser encontradas na própria interface do usuário. Por exemplo, em vez de mostrar o número exato de páginas nos resultados e links, você pode mostrar apenas um link para uma página que contém essas informações. Assim, você pode evitar que as pessoas sobrecarreguem a página original.

No lado da consulta, em vez de usar deslocamento com limite, mais uma linha pode ser selecionada e, ao clicar em “próxima página”, você pode designar essa linha final como o ponto de partida para o próximo conjunto de resultados.

Etapa 8:salve as estatísticas com atenção, alerte com relutância


Alertar e monitorar são essenciais, mas o que acontece com o sistema de monitoramento típico é que ele começa a enviar falsos positivos. Os administradores de sistemas configuram regras de filtragem de e-mail para interromper o ruído e logo seu sistema de monitoramento se torna inútil.

É importante capturar e salvar todas as métricas possíveis, porque você ficará feliz em tê-las quando tentar descobrir o que mudou no sistema. Além disso, quando surgir um problema estranho, você poderá apontar para um gráfico e rastrear facilmente uma alteração na carga de trabalho do servidor.

As pessoas geralmente alertam sobre coisas como a taxa de acertos do buffer ou o número de tabelas temporárias criadas por segundo. O problema é que não existe um limite razoável para tal proporção. Além disso, o limite adequado é diferente entre os servidores e de tempos em tempos conforme seu trabalho muda.

Como resultado, alerte com moderação e apenas em condições que indiquem um problema definido e acionável. Por exemplo, uma baixa taxa de acertos de buffer não é acionável, nem indica um problema real, mas um servidor que não responde a uma tentativa de conexão é um problema real que precisa ser resolvido.

Etapa 9:aprenda as três regras de indexação


Este é o tópico mais incompreendido em bancos de dados porque há muitas maneiras de aprender sobre como os índices funcionam e como o servidor os utiliza. Índices, se projetados adequadamente, servem a três propósitos importantes em um servidor de banco de dados;
  1. Em vez de linhas únicas, os índices permitem que o servidor encontre grupos de linhas adjacentes. Muitas pessoas pensam que o propósito dos índices é encontrar linhas individuais, mas encontrar linhas únicas leva a operações de disco aleatórias, tornando o servidor muito lento. Encontrar grupos de linhas é muito melhor e interessante do que encontrar uma linha de cada vez.
  2. Também permite que o servidor evite a classificação lendo as linhas na ordem desejada. A leitura de linhas, ao contrário da classificação, é muito mais rápida e menos dispendiosa.
  3. Os índices também permitem que o servidor satisfaça consultas inteiras apenas do índice, evitando a necessidade de acessar o tablet. Isso é conhecido como índice covey ou consulta somente de índice.

Etapa 10:aproveite a experiência de seus colegas


Você se importaria de não fazer isso sozinho? Tentar resolver os problemas e fazer o que parece lógico e sensato para você pode funcionar na maioria das vezes, mas não o tempo todo. Então, em vez disso, construa uma rede de recursos relacionados ao MySQL que vão além dos conjuntos de ferramentas e guias de solução de problemas.

As pessoas são incrivelmente bem informadas à espreita em listas de discussão, fóruns e assim por diante. Além disso, conferências, feiras e eventos de grupos de usuários locais oferecem oportunidades valiosas para obter insights e construir relacionamentos com colegas que podem ajudá-lo.

Para os poucos que procuram ferramentas para complementar essas dicas, você pode conferir o Percona Configuration Wizard for MySQL e os plug-ins de monitoramento MySQL Percona.

O assistente de configuração pode ajudá-lo a gerar uma linha de base. my.cnf para um novo servidor superior aos arquivos de amostra que acompanham o servidor.

O consultor de consulta que é superior aos arquivos de amostra que acompanham o servidor. O consultor analisará seu SQL para ajudar a detectar padrões potencialmente destrutivos, como consultas de paginação (dica 7).

Os plug-ins de monitoramento Percona são conjuntos de plug-ins de monitoramento e gráficos que ajudam você a salvar estatísticas avidamente e alertar com relutância (Etapa nº 8). Todas essas ferramentas estão disponíveis gratuitamente.

Benefícios do ajuste de desempenho


O principal benefício é que ele permite que você evite o provisionamento excessivo e reduza os custos ao dimensionar corretamente seus serviços. Ele também fornece informações sobre se mover o armazenamento de dados ou adicionar capacidade de servidor melhorará ou não o desempenho e, em caso afirmativo, quanto será.

Quando um banco de dados é ajustado corretamente, ele fornece resultados de desempenho benéficos com ótimas funcionalidades. Ele não apenas reduz a carga de tarefas indesejadas, mas também otimiza o banco de dados MySQL para uma recuperação de dados mais rápida.

Outras configurações podem fazer a diferença dependendo de sua carga de trabalho ou hardware. O objetivo é fornecer alguns ajustes de desempenho do MySQL para obter rapidamente uma configuração sã do MySQL sem gastar muito tempo alterando configurações não básicas ou lendo documentação para entender quais configurações são importantes para você.

Conclusão


Concluindo, o ajuste de desempenho oferece muitos benefícios e é recomendado ao trabalhar com grandes extensões de dados para melhorar a eficiência do servidor. Seguindo as dicas fornecidas neste artigo, você poderá realizar o ajuste de desempenho do MySQL em seu servidor e bancos de dados confortavelmente.