diff --git a/apps/backend/src/db/migrations/114_template_evidence_indexes.sql b/apps/backend/src/db/migrations/114_template_evidence_indexes.sql new file mode 100644 index 00000000..1fd81d02 --- /dev/null +++ b/apps/backend/src/db/migrations/114_template_evidence_indexes.sql @@ -0,0 +1,17 @@ +-- 114_template_evidence_indexes.sql +-- 接单模板初始化预览:按订单日期筛 30 天,再按订单项取 SKU 证据。 +-- 测试库 40 万订单项时缺索引会到 40 秒;两个索引把预览降到秒级。 + +CREATE INDEX IF NOT EXISTS idx_orders_basis_date + ON orders (((COALESCE(paid_at, created_at) AT TIME ZONE 'Asia/Shanghai')::date)); + +CREATE INDEX IF NOT EXISTS idx_order_items_order_sku_cover + ON order_items (order_id) INCLUDE (id, sku_code, sku_name); + +COMMENT ON INDEX idx_orders_basis_date IS + '模板初始化/时间筛选:按 Asia/Shanghai 订单日期过滤,避免全表扫 orders'; +COMMENT ON INDEX idx_order_items_order_sku_cover IS + '模板初始化的 SKU 证据覆盖索引,避免回表取 sku_code/sku_name'; + +ANALYZE orders; +ANALYZE order_items;