wiki:CustomerLoyaltyFullIndex

Version 2 (modified by 223235, 2 weeks ago) ( diff )

--

Индекси: v_customer_loyalty_full_v2_index

Својство Вредност
Шема kbnteam
Област Лојалност на клиентите
Главен преглед v_customer_loyalty_full_v2

Опис

Индексите го поддржуваат пристапот до податоците за лојалност на клиентите. Се поставуваат врз изворните табели и можат да се користат од повеќе прегледи.

customer_loyalty(user_id) има уникатен индекс. Индексот по клиент и датум не го содржи order_total, па пресметката на вкупната потрошувачка и натаму бара читање на износите.

DDL

CREATE INDEX IF NOT EXISTS idx_customer_order_customer_user_id_order_datetime
ON kbnteam.customer_order (customer_user_id, order_datetime DESC);

CREATE INDEX IF NOT EXISTS idx_customer_company_id
ON kbnteam.customer (company_id);

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

Индекс Прегледи Намена
idx_customer_order_customer_user_id_order_datetime v_customer_loyalty_full_v2, v_orders_full, v_reviews_full Пронаоѓање нарачки по клиент; поддршка за пристап по датум во рамки на клиентот.
idx_customer_company_id v_customer_loyalty_full_v2, v_orders_full Пронаоѓање клиенти по компанијата на која припаѓаат.

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

Индекс Табела Прва колона Следни колони Намена
idx_customer_order_customer_user_id_order_datetime customer_order customer_user_id order_datetime DESC Пронаоѓање нарачки по клиент; поддршка за пристап по датум во рамки на клиентот.
idx_customer_company_id customer company_id — Пронаоѓање клиенти по компанијата на која припаѓаат.

Првата колона го определува вообичаениот почеток на пребарувањето со составен индекс. Присуството на други колони не значи дека индексот ги содржи сите податоци потребни за прегледот.

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

SELECT tablename, indexname, indexdef
FROM pg_indexes
WHERE schemaname = 'kbnteam'
  AND indexname IN (
    'idx_customer_order_customer_user_id_order_datetime',
    'idx_customer_company_id'
)
ORDER BY tablename, indexname;

Проверката ги прикажува имињата и дефинициите. IF NOT EXISTS спречува повторно креирање под исто име, но не проверува дали постојната дефиниција е еднаква на наведената.

Влијание врз перформансите

Изборот меѓу секвенцијално читање, индексно читање и други планови зависи од обемот на податоците, селективноста на филтрите и статистиките. Индексите не гарантираат забрзување или отстранување на сортирањата и спојувањата. Плановите и времињата се утврдуваат со мерење.

Редоследот по датум може да поддржи пристап до понови нарачки на клиентот, но не ја отстранува потребата од читање на нарачките за COUNT и SUM. Одделен CTE сам по себе не докажува подобри перформанси.

Тестирање на перформанси

Тест прашалниците за овој преглед се наведени во v_customer_loyalty_full_v2.

Резултати пред индексирање

Прашалник Execution Time (ms) План / забелешки
Тест 1: по компанија _ _
Тест 2: по ниво _ _
Тест 3: по клиент _ _

Резултати по индексирање

Прашалник Execution Time (ms) План / забелешки
Тест 1: по компанија _ _
Тест 2: по ниво _ _
Тест 3: по клиент _ _
Note: See TracWiki for help on using the wiki.