Django

Desempenho do Django

Otimização de queries, problema N+1, índices de banco de dados, connection pooling, profiling, monitoring

24 perguntas de entrevista·
Senior
1

Qual é o problema de desempenho mais comum relacionado às queries do ORM do Django?

Resposta

O problema N+1 é o problema de desempenho mais comum com o ORM do Django. Ocorre quando uma query inicial busca N objetos e, em seguida, N queries adicionais são executadas para buscar os objetos relacionados. Por exemplo, iterar sobre artigos e acessar seu autor gera uma query por artigo em vez de uma única query com join.

2

Qual método deve ser usado para resolver o problema N+1 com uma relação ForeignKey?

Resposta

select_related() é o método adequado para resolver o problema N+1 com relações ForeignKey e OneToOneField. Ele realiza um join SQL e busca os objetos relacionados em uma única query. prefetch_related() é usado para relações ManyToMany ou relações inversas (ForeignKey reverse).

3

Quando se deve usar prefetch_related() em vez de select_related()?

Resposta

prefetch_related() foi projetado para relações ManyToMany e relações inversas (ForeignKey reverse). Diferente de select_related() que faz um join SQL, prefetch_related() executa uma query separada e realiza o join em Python. Isso evita a duplicação de dados que ocorreria com um join SQL sobre relações many-to-many.

4

Como usar Prefetch() para personalizar as queries de prefetch_related()?

5

Qual é o principal benefício de adicionar um índice de banco de dados em um campo?

+21 perguntas de entrevista

Domine Django para sua proxima entrevista

Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.

Comece gratis