Backend, APIs e dados · Misto

Bancos de dados: escolher e não se arrepender

Em uma linha: Na maioria dos casos, um banco de dados relacional é a resposta certa, e qualquer outra escolha precisa de um motivo que dê para dizer em uma frase.

Por que relacional como padrão

Consistência, consultas flexíveis, restrições que evitam dados quebrados e ferramentas maduras. A maior parte do que se considera 'limitação relacional' se resolve com um esquema correto e índices.

Stores de documentos servem quando a estrutura realmente varia entre registros; chave-valor para cache e estado transitório; séries temporais para métricas. São adições, não substituições.

Decisões que fixam o futuro

Chaves. Estáveis e imutáveis; não use informação de negócio como chave.

Restrições. Chaves estrangeiras, unicidade e não-nulidade. Uma restrição no store vence uma verificação no código — ela pega também o caminho que você não pensou.

Horários. Armazene em um fuso horário consistente e explícito, com horário de criação e atualização por registro.

O que realmente quebra sistemas

Consultas em loop que criam centenas de chamadas em vez de uma, um índice ausente em uma coluna pela qual você filtra, e transações longas que travam. Os três aparecem só com volume real.

Indo mais fundo

Ative o log de consultas lentas desde o primeiro dia e revise toda semana. E quando adicionar um índice, meça — um índice desnecessário retarda escritas e ocupa espaço, e nem todo plano de consulta melhora com ele.