Индекс: v_company_billing_overview_index
| Датотека | indexes/v_company_billing_overview_index.sql
|
|---|---|
| Шема | kbnteam
|
| Поврзани прегледи | v_company_billing_overview, v_contracts_revenue, v_company_users
|
Опис
Два индекси за поддршка на прегледот v_company_billing_overview. idx_contract_company_id го поддржува CTE-то company_contracts (GROUP BY company_id), а idx_customer_order_comp_order_id го поддржува LEFT JOIN во CTE-то invoice_totals.
DDL
-- indexes/v_company_billing_overview_index.sql CREATE INDEX IF NOT EXISTS idx_contract_company_id ON kbnteam.contract (company_id); CREATE INDEX IF NOT EXISTS idx_customer_order_comp_order_id ON kbnteam.customer_order (comp_order_id);
Поддржани прегледи
| Индекс | Прегледи | Цел |
|---|---|---|
idx_contract_company_id | v_company_billing_overview, v_company_users | CTE company_contracts GROUP BY company_id; JOIN contract по company_id
|
idx_customer_order_comp_order_id | v_company_billing_overview и многу други | LEFT JOIN customer_order → company_order по comp_order_id
|
Колонски план
| Индекс | Колона | Причина |
|---|---|---|
idx_contract_company_id | company_id | Единечна колона — GROUP BY company_id во CTE company_contracts
|
idx_customer_order_comp_order_id | comp_order_id | FK JOIN — customer_order.comp_order_id → company_order.comp_order_id
|
Разлика помеѓу idx_contract_company_id и idx_contract_company_id_rest_id
| Индекс | Дефиниран во | Колони | Употреба |
|---|---|---|---|
idx_contract_company_id | v_company_billing_overview_index.sql | (company_id) | Единечна колона — само filteri по company_id | |
idx_contract_company_id_rest_id | v_contracts_revenue_index.sql | (company_id, rest_id) | Composite — JOIN и filter по company+restaurant |
PostgreSQL може да го користи idx_contract_company_id_rest_id и за прашалници со само company_id (leading column match), така да idx_contract_company_id е технички редундантен кога двата постојат. Сепак, единечниот индекс е покомпактен за само-company_id скенирање.
Верификација
SELECT indexname, indexdef
FROM pg_indexes
WHERE schemaname = 'kbnteam'
AND indexname IN (
'idx_contract_company_id',
'idx_customer_order_comp_order_id'
);
Last modified
2 weeks ago
Last modified on 05/10/26 14:43:37
Note:
See TracWiki
for help on using the wiki.
