Elimina N+1 de categoria no catálogo e na PDP
Fase 17, com medição antes de mexer. O card do produto mostra o nome da
categoria (_product_card.html.erb:2), mas o controller não fazia includes
dela: uma query por card.
Medido no catálogo com 10 produtos:
antes 30 queries, com 7x SELECT categories WHERE id = N
depois 23 queries, sem padrão duplicado
E na PDP, que usa breadcrumb_name — este sobe a árvore de categorias, e
cada nível era outra query:
antes 27 queries, com 4x SELECT categories WHERE id = N
depois 25 queries
Daí `category: :parent` e não apenas `:category`.
NÃO adicionei índice para as colunas de ordenação novas (price_cents,
name). O plano de consulta com o volume atual é Seq Scan + Sort — com 10
produtos o PostgreSQL ignora índice de qualquer forma, e criar um agora
seria a otimização prematura que a própria Fase 17 manda evitar (§51,
§53). Reavaliar quando o catálogo crescer o suficiente para o plano
mudar.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017jSiuhB3mDxcty3rpck6jD U
Uriel Juliatti committed
ac0051ce06dd0959e7254231573d578b6b82311f
Parent: 8eed4f9