Como reduzimos em 80% o tempo de resposta de consultas otimizando o PostgreSQL
- Rodrigo Salviatto
- 4 de jul.
- 2 min de leitura
Em ambientes de e-commerce, a performance do sistema de banco de dados é essencial para garantir a agilidade e a tomada de decisão em tempo real.
Em um cenário onde o banco de dados PostgreSQL estava enfrentando sérias dificuldades de performance, fomos acionados para entender e resolver o problema.
O objetivo deste artigo é compartilhar como a otimização e o ajuste dos parâmetros do PostgreSQL podem transformar a performance de um sistema crítico.
Detalhamento
· Problema encontrado: O cliente, um grande e-commerce nacional, enfrentava um grande problema com a lentidão de consultas, especialmente em relatórios financeiros e operacionais, o que afetava a tomada de decisões diárias.
· Consultas lentas e falta de indexação: As consultas demoravam muito para serem processadas, devido à ausência de índices otimizados. Isso resultava em relatórios que levavam muito tempo para serem gerados, impactando diretamente a operação da empresa.
Solução otimizando PostgreSQL
· Mapeamento das Consultas com pg_stat_statements: A primeira etapa foi identificar as consultas mais lentas utilizando a extensão pg_stat_statements, o que nos permitiu mapear as consultas que estavam afetando a performance de forma generalizada.
· Reorganização de Índices: Realizamos a reorganização dos índices existentes e criamos índices parciais e funcionais para melhorar a eficiência de leitura de dados. Também verificamos a necessidade de novas indexações para garantir que as consultas mais frequentes estivessem otimizadas.
· Tuning no Autovacuum e utilização de pg_repack: Ajustamos o autovacuum para garantir que os processos de limpeza de tabelas e índices fossem realizados de forma mais eficiente, além de aplicar o pg_repack para desfragmentar as tabelas que estavam inchadas e melhorar a velocidade das consultas.
O gráfico abaixo ilustra claramente a queda no uso da CPU, com uma diminuição notável logo após a implementação das otimizações.

Conclusão
Com as ações implementadas, conseguimos a otimização do PostgreSQL reduzindo o tempo médio de resposta das consultas em 80%. O sistema passou a gerar relatórios financeiros e operacionais em tempo real, o que trouxe mais eficiência para as áreas de negócio e uma operação mais ágil para o e-commerce.
Além disso, a equipe de TI observou após alguns dias, uma redução significativa nas solicitações de suporte, uma vez que o banco de dados estava mais estável e otimizado.
A otimização do banco de dados PostgreSQL mostrou-se crucial para a melhora geral do desempenho da aplicação e para a satisfação dos usuários internos.
Se você também enfrenta desafios com a performance de seu sistema, considere implementar essas práticas e veja a transformação nos seus resultados.
Ficou interessado em saber como podemos otimizar o seu banco de dados PostgreSQL também?
Fale com nossa equipe comercial - comercial@datacosmos.com.br
Referências
pg_stat_statements - https://www.postgresql.org/docs/current/pgstatstatements.html
otimização de índices - https://www.postgresql.org/docs/current/indexes.html
pg_repack - https://reorg.github.io/pg_repack/
Autor: Michel Penzuti - michel.penzuti@datacosmos.com.br
Comments