From c8b7e80979208bcfc67e9f95a12d156d521d34c3 Mon Sep 17 00:00:00 2001 From: yml2213 Date: Mon, 26 Oct 2026 16:43:05 +0800 Subject: [PATCH] =?UTF-8?q?perf(template):=20=E8=A1=A5=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E8=AF=81=E6=8D=AE=E6=97=A5=E6=9C=9F/=E8=A6=86=E7=9B=96?= =?UTF-8?q?=E7=B4=A2=E5=BC=95=EF=BC=8C=E9=A2=84=E8=A7=88=E9=99=8D=E5=88=B0?= =?UTF-8?q?=E7=A7=92=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../114_template_evidence_indexes.sql | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 apps/backend/src/db/migrations/114_template_evidence_indexes.sql 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;