Pular para o conteúdo
Tecnologia2 min

O custo escondido de consultar o banco a cada visita

Uma home que lê o banco a cada acesso parece inofensiva em desenvolvimento. Em produção, ela transforma tráfego em fatura — e a conta cresce junto com o sucesso.

por Produfy

O custo escondido de consultar o banco a cada visita

Todo banco cobrado por operação tem a mesma armadilha: o código que funciona perfeitamente com dez visitas por dia é o mesmo que gera uma fatura desagradável com dez mil.

A conta

Imagine uma home que lista quatro produtos, seis serviços e três posts. São treze leituras por carregamento — mais as configurações do site, digamos quinze.

Visitas/mêsLeituras
1.00015.000
50.000750.000
500.0007.500.000

O conteúdo é exatamente o mesmo nas três linhas. A única coisa que mudou foi quanta gente olhou para ele.

O erro conceitual

O problema não é técnico, é de modelo mental. Tratar a página como "consulta o dado e mostra" faz sentido num painel administrativo, onde cada usuário vê algo diferente. Não faz sentido num site institucional, onde todo mundo vê a mesma coisa.

A pergunta que separa os dois casos:

Duas pessoas acessando esta página ao mesmo tempo veriam conteúdo diferente?

Se a resposta é não, essa página não deveria consultar nada.

O padrão que resolve

Gerar a página quando o conteúdo muda, e servir o resultado pronto:

  1. O editor publica algo no CMS.
  2. O sistema regenera apenas as páginas afetadas.
  3. O CDN passa a servir o HTML novo.
  4. Nenhuma visita toca o banco.

Duas coisas importam nesse desenho.

Revalidar por rota, não o site inteiro. Publicar um post não deveria reconstruir as páginas de produto. Invalidação cirúrgica mantém o custo de publicação baixo e o site rápido.

Ter uma rede de segurança. Além da revalidação sob demanda, um prazo de expiração — uma hora, por exemplo — garante que uma falha na invalidação não deixe conteúdo velho no ar para sempre.

Onde o CMS entra

O painel administrativo pode consultar o banco à vontade. Ele tem poucos usuários, e a informação precisa estar fresca — um editor que salva e vê o valor antigo perde a confiança na ferramenta.

Isso leva a uma separação simples:

  • Site público: estático, cacheado, zero leitura por visita.
  • Painel: dinâmico, consulta direta, leitura por interação.

São duas naturezas diferentes no mesmo projeto, e tratá-las igual é o que costuma sair caro.

Um detalhe que passa despercebido

Cuidado com listagens que agregam. Uma caixa de entrada que lê todas as mensagens para montar a lista de conversas custa uma leitura por mensagem, não por conversa.

A saída é desnormalizar: manter na conversa os campos que a listagem precisa — último trecho, data, contagem de não lidas. Custa uma escrita a mais quando chega mensagem, e economiza uma leitura por mensagem em toda abertura da tela.

Tags

  • #performance
  • #cache
  • #firestore
  • #custo

Quer transformar sua ideia em produto?

A gente escreve sobre isso porque faz isso todo dia. Vamos conversar.