= Индекс: 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 == {{{ #!sql -- 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 операцијата || == Верификација == {{{ #!sql 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` е особено корисен ако апликацијата додатно ги сортира нарачките по датум.