O Que É uma Query N+1?
Uma query N+1 acontece quando o código executa uma query para carregar uma coleção de N itens e depois executa uma query adicional para cada item para buscar dados relacionados, totalizando N+1 queries. Geralmente surge do lazy loading dentro de um loop. A correção é o eager loading ou um join que reúna tudo em uma única query.
Por que isso importa
Padrões N+1 parecem tranquilos em desenvolvimento com poucos dados, mas degradam bruscamente em escala, já que a contagem de queries cresce com o conjunto de resultados. Detectá-los cedo evita páginas lentas e sobrecarga do banco de dados.
Guias relacionados
What Is Eager Loading?Eager loading fetches related data upfront in a single combined query, so associations are already available…
What Is Lazy Loading in Data Access?Lazy loading defers fetching related data until it is actually accessed, avoiding upfront queries for associa…
What Is a Database Index?A database index is an auxiliary data structure that lets the engine find rows matching a query quickly, avoi…