← back to New Import Viewer
data/REQUIRED-INDEXES.sql
14 lines
-- Load-bearing indexes for new-import-viewer (:9790) /api/stats.
-- Replay on any dw_unified rebuild. Without the registry functional index the
-- netnew NOT EXISTS seq-scans 84k rows per outer row → stats query 75s+/never
-- → server death spiral (see 2026-06-11 meltdown; commit 0d81ad3).
-- dw_sku_registry: functional index matching NETNEW_PRED's upper(trim(mfr_sku)).
-- shopify_products already has idx_sp_mfr_upper_trim (its twin).
CREATE INDEX IF NOT EXISTS idx_registry_mfr_upper_trim
ON dw_sku_registry (upper(trim(mfr_sku)));
ANALYZE dw_sku_registry;
-- NOTE: build PLAIN, not CONCURRENTLY — a CONCURRENTLY build that doesn't finish
-- validation leaves an INVALID index the planner silently ignores (indisvalid=f).