Индекс: v_driver_lunch_timers_index
| Датотека | indexes/v_driver_lunch_timers_index.sql
|
|---|
| Шема | kbnteam
|
|---|
| Поврзани прегледи | v_driver_lunch_timers, v_company_users
|
|---|
Опис
Три индекси за поддршка на прегледот v_driver_lunch_timers. Таргетираат: распоред по ден од неделата, JOIN на возачи по ресторан и JOIN на договори по ресторан и компанија.
DDL
-- indexes/v_driver_lunch_timers_index.sql
CREATE INDEX IF NOT EXISTS idx_lunch_time_weekday_contract_id
ON kbnteam.lunch_time (lunch_weekday, contract_id);
CREATE INDEX IF NOT EXISTS idx_driver_rest_id
ON kbnteam.driver (rest_id);
CREATE INDEX IF NOT EXISTS idx_contract_rest_id_company_id
ON kbnteam.contract (rest_id, company_id);
Поддржани прегледи
| Индекс | Прегледи | Цел
|
|---|
idx_lunch_time_weekday_contract_id | v_driver_lunch_timers | WHERE lunch_weekday = ?; JOIN lunch_time → contract
|
idx_driver_rest_id | v_driver_lunch_timers, v_driver_deliveries, v_company_users | JOIN driver ON drv.rest_id = r.rest_id
|
idx_contract_rest_id_company_id | v_driver_lunch_timers | JOIN contract по rest_id (complement на idx_contract_company_id_rest_id)
|
Колонски план
| Индекс | Колона 1 | Колона 2 | Причина
|
|---|
idx_lunch_time_weekday_contract_id | lunch_weekday (leading) | contract_id | Филтрирање по ден; JOIN со contract по contract_id
|
idx_driver_rest_id | rest_id | — | JOIN driver.rest_id = restaurant.rest_id
|
idx_contract_rest_id_company_id | rest_id (leading) | company_id | JOIN contract по rest_id наместо по company_id
|
Верификација
SELECT indexname, indexdef
FROM pg_indexes
WHERE schemaname = 'kbnteam'
AND indexname IN (
'idx_lunch_time_weekday_contract_id',
'idx_driver_rest_id',
'idx_contract_rest_id_company_id'
);
Напомена — idx_contract_rest_id_company_id наспрема idx_contract_company_id_rest_id
| Индекс | Leading колона | Цел
|
|---|
idx_contract_company_id_rest_id | company_id | Прашалници и JOIN по компанија → ресторан (дефиниран во v_contracts_revenue_index.sql)
|
idx_contract_rest_id_company_id | rest_id | Прашалници и JOIN по ресторан → компанија (овој индекс)
|
Двата постојат паралелно за да ги поддржат различните насоки на JOIN во различните прегледи.