Parte da nossa série Performance & Scalability
Leia o guia completoOtimização de desempenho do PostgreSQL para Odoo: ajuste, indexação e monitoramento
Uma instância do PostgreSQL devidamente ajustada pode melhorar os tempos de resposta do Odoo em 2 a 5x em comparação com as configurações padrão. A maioria dos problemas de desempenho do Odoo remonta à configuração do banco de dados – as configurações padrão do PostgreSQL são projetadas para uso mínimo de recursos, não para alimentar um sistema ERP multiusuário.
Principais conclusões
- As configurações padrão do PostgreSQL usam apenas buffers compartilhados de 128 MB - a produção do Odoo precisa de 25% de RAM
- Índices ausentes em colunas consultadas com frequência causam varreduras completas da tabela e carregamentos lentos de páginas
- O pool de conexões com PgBouncer reduz a sobrecarga de conexão do banco de dados em 80%
- VACUUM e ANALYZE regulares evitam o inchaço da tabela e mantêm os planos de consulta ideais
Ajuste de configuração do PostgreSQL
Configurações de memória
Edite postgresql.conf com configurações apropriadas para seu hardware. Para um servidor com 16 GB de RAM, defina shared_buffers como 4 GB (25% da RAM total), Effective_cache_size como 12 GB (75% da RAM total), work_mem como 64 MB por operação, Maintenance_work_mem como 1 GB e wal_buffers como 64 MB.
Para planejamento de consulta, defina random_page_cost como 1,1 para armazenamento SSD (o padrão 4.0 pressupõe HDD), Effective_io_concurrency como 200 para SSDs e default_statistics_target como 200 para planos de consulta mais precisos.
Diretrizes de tamanho:
| RAM do servidor | buffers_compartilhados | tamanho_de_cache_efetivo | trabalho_mem |
|---|---|---|---|
| 4 GB | 1 GB | 3 GB | 16 MB |
| 8 GB | 2 GB | 6 GB | 32 MB |
| 16 GB | 4 GB | 12GB | 64 MB |
| 32 GB | 8 GB | 24 GB | 128 MB |
| 64 GB | 16 GB | 48 GB | 256 MB |
Configurações de conexão
Defina max_connections para pelo menos trabalhadores Odoo x 2 mais buffer. Com 4 trabalhadores e 2 threads cron, você precisa de pelo menos 12 conexões. Adicione conexões para ferramentas administrativas, monitoramento e tarefas em segundo plano. Um valor de 200 fornece um espaço confortável.
Estratégias de indexação para Odoo
Identificando índices ausentes
Habilite o registro de consultas lentas definindo log_min_duration_statement como 500 ms. Em seguida, analise o log de consultas lentas para identificar verificações completas da tabela.
Índices Odoo Comuns
Odoo cria índices em chaves primárias e estrangeiras automaticamente. Adicione índices em colunas filtradas com frequência, como sale_order(state), account_move(state), stock_move(state), account_move(date) e sale_order(date_order).
Os índices de múltiplas colunas melhoram as combinações de filtros comuns: account_move_line(account_id, date) e stock_quant(product_id, location_id).
Para tabelas com colunas de status, os índices parciais em registros ativos são mais eficientes - indexa apenas linhas onde o estado não foi cancelado ou concluído.
Análise de consulta com EXPLAIN ANALYZE
Execute EXPLAIN (ANALYZE, BUFFERS) em consultas lentas para entender os planos de execução. Procure:
- Seq Scan: verificação completa da tabela indicando um índice ausente
- Loop aninhado: pode ser caro com grandes conjuntos de resultados
- Classificar: classificações na memória que excedem o derramamento de work_mem no disco
- Leitura compartilhada de buffers: valores altos significam que os dados não são armazenados em cache
Destruidores de desempenho comuns:
- Índices ausentes nas colunas da cláusula WHERE
- Grandes cláusulas IN geradas pelo Odoo ORM
- Campos computados armazenados acionando recálculo em gravações
- Consultas de relatórios complexos juntando mais de 5 tabelas
VÁCUO e Manutenção
PostgreSQL MVCC cria tuplas mortas quando as linhas são atualizadas ou excluídas. VACUUM recupera este espaço e atualiza as estatísticas.
Configure o autovacuum para cargas de trabalho Odoo: habilite o autovacuum com no máximo 3 trabalhadores, tempo de soneca de 60 segundos, fator de escala de vácuo de 0,05 e fator de escala de análise de 0,02. Para tabelas com alta gravação (account_move_line, stock_move, mail_message), defina configurações mais agressivas por tabela.
Monitore o inchaço da tabela verificando os tamanhos totais das relações e as contagens de tuplas mortas. Use VACUUM FULL only for extreme bloat (over 50% dead space) and only during maintenance windows since it locks the table.
Pool de conexões com PgBouncer
O PgBouncer fica entre o Odoo e o PostgreSQL, agrupando conexões para reduzir a sobrecarga. Use o modo pool de transações para Odoo, que libera conexões entre transações. Defina default_pool_size como 40 e max_client_conn como 200. Aponte o Odoo para a porta PgBouncer em vez do PostgreSQL diretamente.
Monitoramento
Métricas Essenciais
- Conexões ativas: devem ficar bem abaixo de max_connections
- Taxa de acertos de cache: deve estar acima de 99%
- Taxa de transação: referência e observação de anomalias
- Contagem lenta de consultas: consultas que excedem seu limite
- Atraso de replicação: se estiver usando réplicas de leitura
- Uso de disco: taxa de crescimento do tamanho do banco de dados
- Inchaço da tabela: proporção de tuplas mortas por tabela
Use a extensão pg_stat_statements para monitorar o desempenho da consulta ao longo do tempo. Ele registra a contagem de execução, o tempo total, o tempo médio e as linhas retornadas para cada padrão de consulta distinto.
Perguntas frequentes
P: Como posso saber se o PostgreSQL é o gargalo?
Habilite o registro de consultas lentas e verifique os registros de desempenho do Odoo. Se a maioria das solicitações lentas corresponderem a consultas lentas, o ajuste ajudará. Se as consultas forem rápidas, mas o Odoo for lento, o gargalo estará no código do aplicativo ou na rede.
P: Devo usar réplicas do PostgreSQL para Odoo?
As réplicas de leitura descarregam consultas de relatórios do banco de dados primário. Odoo não oferece suporte nativo à divisão de leitura/gravação, portanto, a configuração personalizada roteia consultas somente leitura para réplicas. Isso é útil principalmente para implantações muito grandes.
P: Qual versão do PostgreSQL devo usar com o Odoo?
Use a versão estável mais recente suportada pela sua versão Odoo. As versões mais recentes incluem melhorias no otimizador de consulta e melhor desempenho de vácuo. PostgreSQL 16 ou 17 são recomendados para versões atuais do Odoo.
P: Quanto o ajuste adequado realmente ajuda?
Em nossa experiência, passar das configurações padrão para configurações ajustadas normalmente melhora o tempo médio de carregamento da página em 40-60% e reduz a frequência de consulta lenta em 80-90%. A melhoria é dramática e imediata.
O que vem a seguir
O ajuste do PostgreSQL é a otimização de maior impacto para o desempenho do Odoo. Comece com configurações de memória e indexação – essas duas alterações por si só costumam reduzir o tempo de resposta pela metade.
Entre em contato com a ECOSIRE para obter ajuda na otimização do banco de dados ou explore nossos serviços de suporte Odoo para gerenciamento contínuo de desempenho.
Publicado pela ECOSIRE – ajudando empresas a escalar com soluções de software empresarial.
Escrito por
ECOSIRE TeamTechnical Writing
The ECOSIRE technical writing team covers Odoo ERP, Shopify eCommerce, AI agents, Power BI analytics, GoHighLevel automation, and enterprise software best practices. Our guides help businesses make informed technology decisions.
ECOSIRE
Transforme seu negócio com o Odoo ERP
Implementação, personalização e suporte especializado do Odoo para agilizar suas operações.
Artigos Relacionados
Segmentação de clientes baseada em IA: do RFM ao clustering preditivo
Saiba como a IA transforma a segmentação de clientes, desde a análise estática de RFM até o clustering preditivo dinâmico. Guia de implementação com dados Python, Odoo e ROI real.
IA para otimização da cadeia de suprimentos: visibilidade, previsão e automação
Transforme as operações da cadeia de suprimentos com IA: detecção de demanda, pontuação de risco de fornecedores, otimização de rotas, automação de armazéns e previsão de interrupções. Guia 2026.
Estratégia de comércio eletrônico B2B: construir um negócio online de atacado em 2026
Domine o comércio eletrônico B2B com estratégias de preços de atacado, gerenciamento de contas, condições de crédito, catálogos punchout e configuração do portal Odoo B2B.
Mais de Performance & Scalability
Depuração e monitoramento de webhook: o guia completo para solução de problemas
Domine a depuração de webhook com este guia completo que cobre padrões de falha, ferramentas de depuração, estratégias de repetição, painéis de monitoramento e práticas recomendadas de segurança.
Teste de carga k6: teste de resistência de suas APIs antes do lançamento
Domine o teste de carga k6 para APIs Node.js. Abrange aumentos de usuários virtuais, limites, cenários, HTTP/2, testes WebSocket, painéis Grafana e padrões de integração de CI.
Configuração de produção Nginx: SSL, cache e segurança
Guia de configuração de produção Nginx: terminação SSL, HTTP/2, cabeçalhos de cache, cabeçalhos de segurança, limitação de taxa, configuração de proxy reverso e padrões de integração Cloudflare.
Ajuste de desempenho Odoo: PostgreSQL e otimização de servidor
Guia especializado para ajuste de desempenho do Odoo 19. Abrange configuração do PostgreSQL, indexação, otimização de consultas, cache Nginx e dimensionamento de servidores para implantações corporativas.
Odoo vs Acumatica: Cloud ERP para empresas em crescimento
Odoo vs Acumatica comparados para 2026: modelos de preços exclusivos, escalabilidade, profundidade de fabricação e qual ERP em nuvem se adapta à sua trajetória de crescimento.
Teste e monitoramento de agentes de IA em produção
Um guia completo para testar e monitorar agentes de IA em ambientes de produção. Abrange estruturas de avaliação, observabilidade, detecção de desvios e resposta a incidentes para implantações OpenClaw.