Per code review audit (May 14): BRIN index на partitioned parent table dead weight. PG16 НЕ propagates такие индексы на child partitions; pg_stat показывает idx_scan=0 → никогда не использовался. ## Why dead rosreestr_deals — yearly partitioned по period_start_date. Queries делают partition pruning через partition key. BRIN index на parent существует, но: 1. На child partitions его нет (PG16 не reflects) 2. Parent сам не имеет данных (partitioned out) 3. Queries никогда не trigger BRIN scan Maintenance overhead (storage, autoanalyze) без value. ## Migration `data/sql/89_drop_dead_brin_rosreestr_deals.sql` — атомарный DROP с idempotent `IF EXISTS`. Apply order: после 88_*. ## Cleanup `data/sql/01_schema_rosreestr_deals.sql:65-67` — закомментировал оригинальное CREATE с note: fresh DB bootstrap НЕ создаст index заново. ## Rollback path Если в будущем нужен range scan optimization — re-create per-partition: ```sql CREATE INDEX rosreestr_deals_2024q1_period_brin ON rosreestr_deals_2024q1 USING BRIN (period_start_date); -- per-partition × N partitions ``` Но обычно partition pruning достаточно. Измерь EXPLAIN перед re-creation. ## Vault `fixes/Migration_Drop_Dead_Brin_May14.md` создан (status: ready_to_apply). Apply на prod: `psql ... -f data/sql/89_drop_dead_brin_rosreestr_deals.sql` после merge. |
||
|---|---|---|
| .. | ||
| sql | ||
| playwright_state.json | ||