Melhorando o Desempenho do Banco de Dados no VPS

Publicado: por Josh Helmuth
Melhorando o Desempenho do Banco de Dados no VPS thumbnail

Pesquise “melhorar o desempenho do banco de dados VPS” e você encontrará empresas de hospedagem promovendo atualizações de VPS através de postagens em blogs. Nós também poderíamos — temos um produto VPS altamente escalável.

Mas apenas atualizações não resolverão o seu problema.

Você teria apenas um banco de dados lento em um servidor mais caro. A realidade é que a maioria dos sites não precisa de atualizações, especialmente não como o primeiro passo para melhorar o desempenho.

Você deseja otimizar o site e o banco de dados antes de considerar uma atualização.

Esse é o nosso objetivo com este guia — ajudar você a otimizar o desempenho do banco de dados no seu VPS existente.

O Que Queremos Dizer Com “Otimizar o Desempenho do Banco de Dados”?

Otimizar o desempenho do banco de dados significa melhorar sistematicamente a rapidez e a eficiência com que um banco de dados processa consultas, lida com usuários simultâneos e gerencia recursos. Isso envolve técnicas como indexação, otimização de consultas e ajuste de hardware para reduzir tempos de resposta, aumentar a taxa de transferência e diminuir custos operacionais, mantendo a precisão dos dados e a confiabilidade do sistema.

Aqui está como isso acontece:

Conceito de otimização de banco de dados mostrando como a limpeza de dados desnecessários pode evitar atualizações caras de VPS transformando armazenamento de banco de dados desorganizado em uma estrutura de banco de dados organizada e eficiente.

Pense no seu banco de dados como um armazém. Com o tempo, as coisas se acumulam até que não haja espaço para se movimentar e encontrar o que você precisa demore uma eternidade.

Para ajudar com isso, você poderia:

  • Compre um espaço de armazenamento maior.
  • Remova itens desnecessários.

A melhor opção: remova itens desnecessários primeiro. Mover a desordem para um espaço maior não resolve o problema principal. Você pode acabar com o mesmo problema alguns meses depois, agora com seu espaço de armazenamento maior.

Seu banco de dados funciona da mesma maneira. Ele coleta dados (até acumulando coisas que você não precisa mais), portanto, são necessárias limpezas regulares.

É Realmente Sua Base de Dados ou Código do Site que Está Inchado?

Você precisa verificar o que está realmente desacelerando seu site.

Quando o banco de dados é o gargalo:

  • Páginas com conteúdo dinâmico (como listagens de produtos ou arquivos de blog) carregam lentamente.
  • A área de administração do seu site parece lenta ao gerenciar posts ou produtos.
  • Consultas ao banco de dados demoram mais de 1-2 segundos para serem concluídas.
  • Horários de pico de tráfego causam lentidões significativas.

Quando o código do site é o problema:

  • Seu site demora muito para carregar mesmo que a atividade do banco de dados seja mínima. (Até páginas estáticas carregam lentamente!)
  • Arquivos de imagem grandes ou mídia não otimizada atrasam os tempos de carregamento (verifique primeiro no GTmetrix).
  • Muitos plugins ou temas pesados causam atrasos.

Ferramentas de diagnóstico rápido:

  • Utilize ferramentas como Query Monitor (para WordPress) para ver quais consultas ao banco de dados estão demorando mais.
  • Verifique o uso de CPU e memória do seu servidor durante os períodos de pico.
  • Faça um teste de PageSpeed tanto em páginas com uso intensivo de banco de dados quanto em páginas estáticas para comparar os tempos de carregamento.

Se as consultas ao banco de dados consistentemente excederem alguns segundos, ou se páginas pesadas em banco de dados carregarem significativamente mais lentas do que as estáticas, você tem um problema de desempenho do banco de dados que vale a pena abordar.

Nota do Nerd: Devemos ser claros – Estas recomendações não são específicas da DreamHost. Mencionamos isso porque quando você possui um dos ambientes de hosting gerenciados da DreamHost, a equipe da DreamHost cuidará da manutenção do servidor para você.

Receba conteúdo diretamente na sua caixa de entrada

Inscreva-se agora para receber todas as últimas atualizações, diretamente na sua caixa de entrada.

Como Você Pode Otimizar o Desempenho do Banco de Dados em um VPS?

Aqui está o seu roteiro passo a passo para fazer seu banco de dados funcionar como se estivesse em suplementos de aumento de desempenho:

1. Atualize o Software do Seu VPS

Pode parecer básico, mas muitos proprietários de sites nunca atualizam o sistema operacional do VPS ou o software do servidor após o site estar ao vivo.

Por Que é Importante: Software de banco de dados desatualizado é a maneira mais fácil de perder melhorias de desempenho e correções de segurança que os desenvolvedores publicaram.

Por exemplo, um teste de desempenho de banco de dados mostrou que as versões mais recentes do MariaDB são 13%-36% mais rápidas do que as versões do MySQL do mesmo período. Portanto, se ainda estás a usar uma versão antiga do banco de dados, atualizar para a versão mais recente deve resultar em um aumento significativo de desempenho.

O que atualizar especificamente:

  • Software de banco de dados: MySQL ou MariaDB
  • Versão do PHP: PHP 8.4 (última versão estável lançada em novembro de 2024) ou PHP 8.3 para máxima compatibilidade
  • Sistema operacional: Mantenha sua distribuição Linux atualizada com as últimas correções de segurança
  • Servidor web: Apache ou NGINX

Nota para nerds: Lembra-te de testar as atualizações num ambiente de staging primeiro! Não queres que o teu site ao vivo pare de funcionar por causa de um problema de compatibilidade.

2. Limpeza do Inchaço do Banco de Dados

Lembra da analogia do quarto de armazenagem? É hora de organizar sua base de dados ao estilo Marie Kondo agora.

Aqui está algum lixo comum no banco de dados que você precisará limpar regularmente:

  • Revisões antigas de postagens (WordPress pode salvar mais de 50 revisões por postagem)
  • Comentários Spam e meta de comentários não utilizados
  • Transientes expirados e dados de cache
  • Tabelas residuais de plugins não utilizados
  • Arquivos de registros que não foram limpos em meses

Para usuários do WordPress:

  • Utilize Plugins, como WP-Optimize ou Advanced Database Cleaner.
  • Limite as revisões de postagens adicionando define (‘WP_POST_REVISIONS’, 3); ao seu wp-config.php.
  • Limpe regularmente os comentários de Spam.
  • Atualize sua versão do PHP para PHP 8.4, que inclui melhorias de desempenho, incluindo operações SHA-256 2x-5x mais rápidas e funções de sprint otimizadas.

Para outras plataformas:

  • Execute comandos OPTIMIZE TABLE em tabelas frequentemente atualizadas.
  • Delete entradas de registro desnecessárias com mais de 30 dias.
  • Remova dados de teste ou fictícios criados durante o desenvolvimento.

3. Indexação de Banco de Dados

Conceito de índice de banco de dados ilustrado como um arquivo de gavetas organizado rotulado alfabeticamente (A-C, D-F, G-I, J-L, M-O, P-R) mostrando como os índices ajudam a localizar rapidamente os dados.

Pense nos índices de banco de dados como um índice de um livro.

Sem eles, seu banco de dados precisa escanear cada linha individualmente para encontrar o que precisa. Com índices, o banco de dados pode criar um atalho para onde os dados que você solicitou estão. A indexação adequada pode reduzir o tempo das consultas de segundos para milissegundos e ajudar a melhorar o desempenho do seu banco de dados consideravelmente, especialmente com bancos de dados maiores.

Para WordPress, use um plugin como Index WP MySQL For Speed, siga os passos no plugin, e é isso.

Entretanto, você precisa absolutamente criar um backup do site antes de indexar o banco de dados.

Quando adicionar índices:

  • Tens tabelas grandes com milhares de linhas para produtos, posts de blog, usuários, etc
  • Colunas que frequentemente pesquisas ou filtras
  • Colunas de chave estrangeira
  • Muitas colunas usadas em operações de “JOIN” ou cláusulas “WHERE”

Quando NÃO adicionar índices:

  • Tabelas pequenas (geralmente com menos de 1.000 linhas não apresentam ganhos de desempenho)
  • Colunas que mudam frequentemente (índices diminuem a velocidade das operações de “INSERT/UPDATE”)
  • Você está com pouco espaço e quer ser econômico (índices ocupam espaço)

4. Configurar Cache de Consultas

Seu banco de dados é como um bibliotecário prestativo que é frequentemente solicitado pelo mesmo conjunto de livros (populares). Ao invés de caminhar até a sala dos fundos, tentando encontrar os livros repetidamente, um bibliotecário inteligente lembra onde os livros estão, talvez até guardando os livros em suas gavetas da mesa.

O cache de consultas é semelhante a isso. Quando seu banco de dados executa uma consulta, ele armazena o resultado na memória. Na próxima vez que alguém solicitar os mesmos dados, em vez de executar a consulta complexa novamente, seu banco de dados fornece o resultado armazenado em cache quase instantaneamente.

Se os dados forem atualizados, o resultado em cache é atualizado e os novos usuários recebem automaticamente os resultados mais recentes.

Comparação do cache de consultas de banco de dados mostrando melhoria significativa de desempenho: sem cache leva 2,3 segundos a 40% de velocidade versus com cache a 0,1 segundos e velocidade de carregamento de 100% para consultas de produtos populares.

Aqui está como você pode implementar o cache de consultas para usuários do MySQL 8.0 (mais comum):

  • ProxySQL: A substituição recomendada para o cache de consulta do MySQL. Ele fica entre sua aplicação e o banco de dados, armazenando resultados com TTL configurável
  • Cache no Nível da Aplicação: Usuários do WordPress devem utilizar Plugins de cache como W3 Total Cache ou similares em vez de cache no nível do banco de dados para uma implementação mais rápida.
  • Redis ou Memcached: Sistemas de cache externos que requerem mudanças no código, mas oferecem mais controle e melhor escalabilidade. Alguns produtos de hospedagem oferecem cache de objetos integrado com Redis para sites de e-commerce, sites de membros e sites de notícias ou blogs.

Para a maioria dos pequenos sites, você pode ignorar com segurança o cache de consultas no nível do banco de dados. Em vez disso, use primeiro os recursos de cache integrados do seu CMS ou aplicativo. Se precisar de mais desempenho, entre em contato com um desenvolvedor para implementar uma instância Redis para cache de objetos.

Atualização Importante: Cache de consulta integrado do MySQL foi depreciado no MySQL 5.7.20 e completamente removido no MySQL 8.0. Embora o MariaDB ainda suporte cache de consulta, ele está desativado por padrão devido a problemas de escalabilidade em máquinas multi-core.

5. Ajuste a Configuração do Seu Banco de Dados

Sua base de dados vem com configurações padrão projetadas para funcionar em qualquer servidor, desde um pequeno host compartilhado até hardware empresarial. Mas, assim como uma camiseta tamanho único, essas configurações não são otimizadas para suas necessidades. Elas apenas realizam o trabalho.

Os ambientes VPS oferecem a você o poder de personalizar essas configurações para sua configuração específica.

Aqui estão as mudanças mais impactantes para os bancos de dados MySQL e MariaDB:

  • innodb_buffer_pool_size: Defina para 70-80% da sua RAM disponível. Para um VPS de 4GB, use cerca de 3GB.
  • innodb_redo_log_capacity: Para MySQL 8.0.30+, comece com 1-2GB (substitui a antiga configuração innodb_log_file_size).
  • max_connections: Defina para 4x os núcleos do seu CPU, mínimo de 100. A maioria dos sites pequenos precisa apenas de 20-50.
  • query_cache_size: 128M-256M para MySQL 5.7/MariaDB (MySQL 8.0 removeu completamente o cache de consultas).

Utilize o MySQL Tuner ou PGTune para obter recomendações personalizadas baseadas nos seus padrões de uso atuais. Essas ferramentas analisam sua configuração atual e sugerem valores ótimos.

Dica profissional: MySQL 8.0.30+ permite que você redimensione os registros de redo sem reiniciar:

SET GLOBAL innodb_redo_log_capacity = 2147483648

Sempre faça backup do seu banco de dados antes de fazer alterações na configuração! Teste em um ambiente de staging e, em seguida, durante períodos de baixo tráfego.

6. Escolha o Motor de Armazenamento Certo

Pense em engines de armazenamento como diferentes sistemas de arquivo para seus dados. Você precisa organizar os dados de maneira diferente para trabalhar com a engine de armazenamento que você usa.

A maioria das aplicações modernas usa InnoDB (padrão do MySQL), mas existem casos específicos onde outros motores fazem sentido em um VPS.

  • InnoDB (recomendado para a maioria dos sites): Perfeito para sites de comércio eletrônico, blogs e aplicações com atualizações frequentes. Suporta transações, chaves estrangeiras e recuperação de falhas. A desvantagem é um uso de memória um pouco maior, mas em um VPS com recursos dedicados, isso geralmente não é um problema.
  • MyISAM (use com moderação): Mais rápido para operações pesadas de leitura e usa menos memória, mas não possui suporte para recuperação de falhas e transações. Considere isso apenas para tabelas que raramente mudam, como tabelas de consulta ou arquivos.
  • Memory (apenas casos especiais): Armazena dados na RAM para acesso extremamente rápido, mas perde tudo quando o servidor é reiniciado. É perfeito para dados temporários ou armazenamento de sessão em um VPS onde você controla o ambiente.

Para verificar quais motores de armazenamento suas tabelas estão utilizando, execute:

SHOW TABLE STATUS;

No seu console MySQL, você pode converter tabelas com:

ALTER TABLE your_table ENGINE = InnoDB;

A Vantagem do VPS: Diferente do shared hosting, você tem controle total sobre as escolhas do motor de armazenamento e também pode optar por executar vários motores simultaneamente sem restrições. Claro, isso significa que você deve ser cuidadoso com o que escolhe desde o início para evitar migração posteriormente.

7. Monitore e Teste Continuamente

A otimização de banco de dados não é uma tarefa de “configure e esqueça”. Seu site cresce, os padrões de tráfego mudam e o que funcionou no mês passado pode não ser o ideal hoje.

A boa notícia é que os ambientes VPS tornam o monitoramento direto, já que você tem acesso completo aos recursos do sistema e aos registros do banco de dados.

Aqui estão algumas ferramentas essenciais de monitoramento:

  • htop ou top: Monitore o uso da CPU e memória em tempo real.
  • Comando iostat: Verifique o desempenho de I/O do disco (instale com: apt-get install sysstat).
  • Lista de Processos MySQL: Execute SHOW PROCESSLIST; para ver consultas ativas.
  • Log de Consultas Lentas: Ative isso para capturar consultas que demoram mais de 2 segundos.

Você configura uma verificação semanal usando ferramentas como GTmetrix ou Google PageSpeed Insights, focando especialmente em páginas que utilizam intensamente seu banco de dados — páginas de produtos, resultados de pesquisa ou arquivos de blog.

Avaliação dos Core Web Vitals do Google PageSpeed Insights mostrando status de falha com métricas incluindo LCP em 4.5s, INP em 360ms, CLS em 0, FCP em 4.4s e TTFB em 0.7s.

Foque especialmente no seu Tempo até o Primeiro Byte (TTFB), pois é frequentemente onde podem ser identificados problemas de desempenho do banco de dados. Na captura de tela acima, você vê que o TTFB é de 0,7 segundos.

Glossário DreamHost

TTFB

TTFB é uma sigla para Tempo Até o Primeiro Byte. Isso mede o tempo que um navegador espera antes de receber o primeiro byte de dados de um servidor.

Ler Mais

Melhorar o TTFB também melhora sua pontuação nos Core Web Vitals, que é um dos sinais de classificação do Google.

Sinais de alerta para observar:

  • TTFB consistentemente acima de 1 segundo
  • Uso de memória acima de 80% durante o tráfego normal
  • Registro de consultas lentas mostrando as mesmas consultas repetidamente
  • Conexões de banco de dados atingindo o máximo durante os horários de pico

Quando identificar problemas, não entre em pânico e não assuma imediatamente que precisa de uma atualização de VPS. Geralmente, uma das otimizações que abordamos apenas precisa de alguns ajustes.

Quando Você Deve Realmente Atualizar Seu VPS?

Na nossa analogia da sala de armazenamento, lembrarás que nós otimizamos (removemos lixo) para caber na mesma sala.

Mas, se você ainda falta espaço mesmo após a otimização, você superou o espaço e é hora de comprar um maior.

Isso é o mesmo com um upgrade de VPS. Se você já fez todas as otimizações e ainda não vê muita mudança no desempenho, você pode precisar de um VPS maior.

Aqui estão alguns sinais claros que indicarão se o VPS é o gargalo:

  • Uso da CPU consistentemente acima de 80% durante o tráfego normal.
  • O uso da RAM frequentemente excede 85%.
  • As consultas ao banco de dados estão otimizadas, mas ainda são lentas devido a limitações de hardware.
  • Os tempos de carregamento do site ainda excedem 3 segundos após a otimização.

O que atualizar primeiro:

  1. RAM: Geralmente o maior aumento de desempenho para sites com muitos dados no banco de dados.
  2. CPU: Se você está realizando muitos cálculos complexos ou processamentos.
  3. Armazenamento: Faça a atualização para SSDs NVMe se ainda está usando HDDs tradicionais.

Lembre-se, o tempo de carregamento recomendado para todos os websites é inferior a 3 segundos. Tente reduzi-lo ao máximo possível e estará tudo bem!

Sua Jornada de Desempenho do Banco de Dados

Agora, eu tenho boas notícias e algumas notícias não tão boas.

A boa notícia é que você possui um banco de dados totalmente otimizado funcionando eficientemente no seu VPS e servindo seu site com velocidades extremamente rápidas.

A notícia não tão boa é que não acabou. Assim como qualquer outra tarefa de manutenção, os bancos de dados precisam de otimização regular.

Mas você não está mais voando às cegas. Você sabe o que procurar e como consertar.

Existem muitas ferramentas (como WP Optimize e otimização de banco de dados do LiteSpeed Cache) que ajudam você a executar a maioria das tarefas de manutenção do banco de dados com apenas alguns cliques se você estiver usando o WordPress.

Se uma atualização é a única opção restante, experimente os planos VPS da DreamHost e experimente o aumento de velocidade quase instantâneo que o seu site terá com nosso hardware de maior qualidade.

Hosting VPS

Quando Espera Desempenho, Escolha o DreamHost VPS

Grande ou pequeno, site ou aplicação – temos uma configuração VPS para si.

Saiba Mais