wiki:CustomerLoyaltyFullIndex

Индекс: v_customer_loyalty_full_v2_index

Датотека indexes/v_customer_loyalty_full_v2_index.sql
Шема kbnteam
Поврзани прегледи v_customer_loyalty_full_v2, v_customer_loyalty_full, v_orders_full

Опис

Единечен композитен индекс за поддршка на CTE-то order_stats во прегледот v_customer_loyalty_full_v2. Ги агрегира бројот на нарачки, вкупниот потрошен износ и датумот на последна нарачка по купувач. Колоната order_datetime DESC е додадена за поддршка на MAX(order_datetime) без Sort операции.

Истиот индекс е дефиниран и во v_orders_full_index.sql.

DDL

-- indexes/v_customer_loyalty_full_v2_index.sql
CREATE INDEX IF NOT EXISTS idx_customer_order_customer_user_id_order_datetime
ON kbnteam.customer_order (customer_user_id, order_datetime DESC);

Поддржани прегледи

Преглед Начин на употреба
v_customer_loyalty_full_v2 CTE order_stats — GROUP BY customer_user_id, MAX order_datetime
v_customer_loyalty_full Вградено подпрашање — GROUP BY customer_user_id, MAX order_datetime
v_orders_full WHERE customer_user_id = ? и ORDER BY order_datetime

Колонски план

Колона Позиција Причина
customer_user_id 1-ва (leading) Примарен GROUP BY клуч за агрегација на статистики по купувач
order_datetime DESC 2-ра MAX(order_datetime) — DESC редослед го избегнува Sort операцијата

Верификација

SELECT indexname, indexdef
FROM pg_indexes
WHERE schemaname = 'kbnteam'
  AND indexname = 'idx_customer_order_customer_user_id_order_datetime';

Очекувано влијание

При прашалници по конкретен customer_user_id (на пр. проверка на поени за верност при најавување), индексот го трансформира Seq Scan на customer_order во Index Scan. order_datetime DESC е особено корисен ако апликацијата додатно ги сортира нарачките по датум.

Last modified 2 weeks ago Last modified on 05/10/26 14:43:55
Note: See TracWiki for help on using the wiki.