perf: otimizar dashboard com indexes, cache e consolidação de queries (v1.3.0)
- Adicionar indexes compostos em lancamentos para queries frequentes - Eliminar ~20 JOINs com pagadores via helper cacheado getAdminPagadorId() - Consolidar queries: income-expense-balance (12→1), payment-status (2→1), categories (4→2) - Adicionar cache cross-request via unstable_cache com tag-based invalidation - Limitar scan de métricas a 24 meses - Deduplicar auth session por request via React.cache() Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
11
db/schema.ts
11
db/schema.ts
@@ -591,6 +591,17 @@ export const lancamentos = pgTable(
|
||||
table.userId,
|
||||
table.period,
|
||||
),
|
||||
// Índice composto userId + period + transactionType (cobre maioria das queries do dashboard)
|
||||
userIdPeriodTypeIdx: index("lancamentos_user_id_period_type_idx").on(
|
||||
table.userId,
|
||||
table.period,
|
||||
table.transactionType,
|
||||
),
|
||||
// Índice para queries por pagador + period (invoice/breakdown queries)
|
||||
pagadorIdPeriodIdx: index("lancamentos_pagador_id_period_idx").on(
|
||||
table.pagadorId,
|
||||
table.period,
|
||||
),
|
||||
// Índice para queries ordenadas por data de compra
|
||||
userIdPurchaseDateIdx: index("lancamentos_user_id_purchase_date_idx").on(
|
||||
table.userId,
|
||||
|
||||
Reference in New Issue
Block a user