Индекс: v_menu_drink_index
| Датотека | indexes/v_menu_drink_index.sql
|
|---|---|
| Шема | kbnteam
|
| Поврзани прегледи | v_menu_drink, v_customer_contract_drinks, v_customer_contract_menu
|
Опис
Композитен индекс на табелата drink за поддршка на JOIN-от по rest_id и директно лоцирање на записи по drink_id. Ги подобрува пребарувањата на мени по ресторан.
DDL
-- indexes/v_menu_drink_index.sql -- Note: uq_drink_restaurant_name already supports (rest_id, drink_name). CREATE INDEX IF NOT EXISTS idx_drink_rest_id_drink_id ON kbnteam.drink (rest_id, drink_id);
Поддржани прегледи
| Преглед | Колона | Начин на употреба |
|---|---|---|
v_menu_drink | drink.rest_id → restaurant.rest_id | JOIN и WHERE филтрирање |
v_customer_contract_drinks | drink.rest_id → contract.rest_id | JOIN во ланецот customer → company → contract → restaurant → drink |
v_customer_contract_menu | Посредно преку v_customer_contract_drinks | UNION ALL дел за пијачи |
Колонски план
| Колона | Позиција | Причина |
|---|---|---|
rest_id | 1-ва (leading) | Прима JOIN-от по ресторан; се користи и за WHERE rest_id = ? |
drink_id | 2-ра (covering) | Овозможува index-only scan; ги опфаќа Look-Up-овите по drink_id |
Верификација
SELECT indexname, indexdef FROM pg_indexes WHERE schemaname = 'kbnteam' AND indexname = 'idx_drink_rest_id_drink_id';
Очекувано влијание
При филтрирање по rest_id, планерот треба да премине од Seq Scan (читање на целата табела drink) кон Index Scan или Bitmap Index Scan. Особено значајно кога има многу ресторани или голем мени каталог.
Last modified
2 weeks ago
Last modified on 05/10/26 14:41:08
Note:
See TracWiki
for help on using the wiki.
