~/questoes/programacao
O problema N+1 ocorre quando você executa uma query inicial para buscar N registros e depois faz mais N queries adicionais (uma para cada resultado), causando desperdício de recursos. É uma armadilha comum ao trabalhar com ORMs como SQLAlchemy em FastAPI, especialmente com relacionamentos entre tabelas.
A alternativa correta descreve exatamente o problema N+1: uma query inicial mais N queries desnecessárias adicionais. Esse padrão é ineficiente porque faz requisições repetidas ao banco de dados quando uma única query otimizada resolveria a situação.
Essa alternativa descreve replicação de dados e backups, que são conceitos de redundância e disponibilidade. Não tem relação com o problema N+1, que é sobre quantidade de queries executadas, não sobre replicação de dados.
Sharding e particionamento de dados são estratégias de escalabilidade horizontal. Embora úteis para sistemas grandes, não resolvem o problema N+1, que é uma questão de eficiência na forma como as queries são feitas.
Esta é a definição precisa do padrão N+1. Você executa uma query para buscar N registros (por exemplo, todos os usuários) e depois executa N queries adicionais (uma query por usuário para buscar seus pedidos). É ineficiente e fácil de evitar com eager loading.
Usar múltiplos índices pode otimizar uma single query complexa, mas não está relacionado ao problema N+1. Índices melhoram a velocidade de execução individual das queries, não reduzem o número desnecessário de queries.