Changes between Initial Version and Version 1 of MenuDrinkIndex


Ignore:
Timestamp:
05/10/26 14:41:08 (2 weeks ago)
Author:
185022
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MenuDrinkIndex

    v1 v1  
     1= Индекс: v_menu_drink_index =
     2
     3||= Датотека ||= `indexes/v_menu_drink_index.sql` ||
     4||= Шема ||= `kbnteam` ||
     5||= Поврзани прегледи ||= `v_menu_drink`, `v_customer_contract_drinks`, `v_customer_contract_menu` ||
     6
     7== Опис ==
     8Композитен индекс на табелата `drink` за поддршка на JOIN-от по `rest_id` и директно лоцирање на записи по `drink_id`. Ги подобрува пребарувањата на мени по ресторан.
     9
     10== DDL ==
     11{{{
     12#!sql
     13-- indexes/v_menu_drink_index.sql
     14-- Note: uq_drink_restaurant_name already supports (rest_id, drink_name).
     15CREATE INDEX IF NOT EXISTS idx_drink_rest_id_drink_id
     16ON kbnteam.drink (rest_id, drink_id);
     17}}}
     18
     19== Поддржани прегледи ==
     20||= Преглед ||= Колона ||= Начин на употреба ||
     21|| `v_menu_drink` || `drink.rest_id` → `restaurant.rest_id` || JOIN и WHERE филтрирање ||
     22|| `v_customer_contract_drinks` || `drink.rest_id` → `contract.rest_id` || JOIN во ланецот customer → company → contract → restaurant → drink ||
     23|| `v_customer_contract_menu` || Посредно преку `v_customer_contract_drinks` || UNION ALL дел за пијачи ||
     24
     25== Колонски план ==
     26||= Колона ||= Позиција ||= Причина ||
     27|| `rest_id` || 1-ва (leading) || Прима JOIN-от по ресторан; се користи и за WHERE rest_id = ? ||
     28|| `drink_id` || 2-ра (covering) || Овозможува index-only scan; ги опфаќа Look-Up-овите по drink_id ||
     29
     30== Верификација ==
     31{{{
     32#!sql
     33SELECT indexname, indexdef
     34FROM pg_indexes
     35WHERE schemaname = 'kbnteam'
     36  AND indexname = 'idx_drink_rest_id_drink_id';
     37}}}
     38
     39== Очекувано влијание ==
     40При филтрирање по `rest_id`, планерот треба да премине од Seq Scan (читање на целата табела `drink`) кон Index Scan или Bitmap Index Scan. Особено значајно кога има многу ресторани или голем мени каталог.