|
All checks were successful
CI Trade-In / changes (pull_request) Successful in 7s
CI / changes (pull_request) Successful in 9s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 4m14s
listings.tsv (GENERATED ALWAYS ... STORED) пересчитывался на КАЖДОМ UPDATE listings независимо от того, менялись ли description/address, и заново перетостивался — ~5 ГБ TOAST-оборота за 91 день. Разведка: /api/v1/search (search_query.py) читает listings_search_mv, не listings напрямую, а витрина сама считает to_tsvector из сырых description/address/developer_name при каждом REFRESH — l.tsv она никогда не читала. DROP EXPRESSION безопасен для поиска и, по ATExecDropExpression (PG16), не вызывает table rewrite — catalog-only операция. listings_tsv_idx (GIN, 116 MB) снесён отдельно: 0 idx_scan за всю историю БД, не обслуживает ни один constraint. Колонка tsv остаётся (заморожена, без читателей) — DROP COLUMN вне рамок этой миграции. Refs #2992, #2989 |
||
|---|---|---|
| .. | ||
| sql | ||