Changes between Version 1 and Version 2 of ReviewsFullIndex


Ignore:
Timestamp:
09/14/26 00:47:38 (2 weeks ago)
Author:
223235
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ReviewsFullIndex

    v1 v2  
    1 = Индекс: v_reviews_full_index =
     1= Индекси: v_reviews_full_index =
    22
    3 ||= Датотека ||= `indexes/v_reviews_full_index.sql` ||
    4 ||= Шема ||= `kbnteam` ||
    5 ||= Поврзани прегледи ||= `v_reviews_full` (исто така користен во `v_orders_full`, `v_driver_deliveries`, `v_contracts_revenue`, `v_company_billing_overview`) ||
     3||= Својство ||= Вредност ||
     4|| Шема || `kbnteam` ||
     5|| Област || Рецензии ||
     6|| Главен преглед || [wiki:ReviewsFullView v_reviews_full] ||
    67
    78== Опис ==
    8 Единечен индекс за поддршка на JOIN-от помеѓу `customer_order` и `company_order` во прегледот `v_reviews_full`. Иако датотеката е именувана по прегледот за прегледи, индексот е споделен и го користат повеќе прегледи.
     9
     10Индексите го поддржуваат пристапот до податоците за рецензии. Се поставуваат врз изворните табели и можат да се користат од повеќе прегледи.
     11
     12`order_review(review_id)`, `order_review(order_id)`, `delivery_review(review_id)` и `delivery_review(delivery_id)` имаат уникатни индекси. `company_order(delivery_id)` исто така е уникатен. Останатите потребни индекси се споделени со нарачките и доставите.
    913
    1014== DDL ==
     15
     16Овој преглед ги користи основните и заедничките индекси наведени подолу. Нема посебна дополнителна дефиниција на индекс само за него.
     17
     18== Поддржани прегледи ==
     19
     20||= Индекс ||= Прегледи ||= Намена ||
     21|| `idx_company_order_company_id` || [wiki:OrdersFullView v_orders_full], [wiki:DriverDeliveriesView v_driver_deliveries], [wiki:ReviewsFullView v_reviews_full], [wiki:ContractsRevenueView v_contracts_revenue], [wiki:CompanyBillingOverviewView v_company_billing_overview] || Пронаоѓање компаниски нарачки по компанија. ||
     22|| `idx_customer_order_comp_order_id` || [wiki:OrdersFullView v_orders_full], [wiki:DriverDeliveriesView v_driver_deliveries], [wiki:ReviewsFullView v_reviews_full], [wiki:ContractsRevenueView v_contracts_revenue], [wiki:CompanyBillingOverviewView v_company_billing_overview] || Пронаоѓање клиентски нарачки по компаниска нарачка. ||
     23|| `idx_delivery_driver_user_id_delivery_date` || [wiki:DriverDeliveriesView v_driver_deliveries], [wiki:OrdersFullView v_orders_full], [wiki:ReviewsFullView v_reviews_full] || Пронаоѓање достави по доставувач; во прегледите за нарачки и достави и по датум. ||
     24|| `idx_customer_order_customer_user_id_order_datetime` || [wiki:CustomerLoyaltyFullView v_customer_loyalty_full_v2], [wiki:OrdersFullView v_orders_full], [wiki:ReviewsFullView v_reviews_full] || Пронаоѓање нарачки по клиент; поддршка за пристап по датум во рамки на клиентот. ||
     25
     26== Заеднички индекси ==
     27
     28||= Индекс ||= Поврзана документација ||
     29|| `idx_company_order_company_id` || [wiki:OrdersFullIndex Индекси за нарачки и достави] ||
     30|| `idx_customer_order_comp_order_id` || [wiki:OrdersFullIndex Индекси за нарачки и достави] ||
     31|| `idx_delivery_driver_user_id_delivery_date` || [wiki:DriverDeliveriesIndex Индекси за нарачки и достави] ||
     32|| `idx_customer_order_customer_user_id_order_datetime` || [wiki:CustomerLoyaltyFullIndex Индекси за лојалност на клиентите] ||
     33
     34== Колонски план ==
     35
     36||= Индекс ||= Табела ||= Прва колона ||= Следни колони ||= Намена ||
     37|| `idx_company_order_company_id` || `company_order` || `company_id` || — || Пронаоѓање компаниски нарачки по компанија. ||
     38|| `idx_customer_order_comp_order_id` || `customer_order` || `comp_order_id` || — || Пронаоѓање клиентски нарачки по компаниска нарачка. ||
     39|| `idx_delivery_driver_user_id_delivery_date` || `delivery` || `driver_user_id` || `delivery_date` || Пронаоѓање достави по доставувач; во прегледите за нарачки и достави и по датум. ||
     40|| `idx_customer_order_customer_user_id_order_datetime` || `customer_order` || `customer_user_id` || `order_datetime DESC` || Пронаоѓање нарачки по клиент; поддршка за пристап по датум во рамки на клиентот. ||
     41
     42Првата колона го определува вообичаениот почеток на пребарувањето со составен индекс. Присуството на други колони не значи дека индексот ги содржи сите податоци потребни за прегледот.
     43
     44== Верификација ==
     45
    1146{{{
    1247#!sql
    13 -- indexes/v_reviews_full_index.sql
    14 CREATE INDEX IF NOT EXISTS idx_customer_order_comp_order_id
    15 ON kbnteam.customer_order (comp_order_id);
     48SELECT tablename, indexname, indexdef
     49FROM pg_indexes
     50WHERE schemaname = 'kbnteam'
     51  AND indexname IN (
     52    'idx_company_order_company_id',
     53    'idx_customer_order_comp_order_id',
     54    'idx_delivery_driver_user_id_delivery_date',
     55    'idx_customer_order_customer_user_id_order_datetime'
     56)
     57ORDER BY tablename, indexname;
    1658}}}
    1759
    18 == Поддржани прегледи ==
    19 ||= Преглед ||= Начин на употреба ||
    20 || `v_reviews_full` || JOIN `customer_order` → `company_order` по `comp_order_id` (Гранка 1: order reviews) ||
    21 || `v_orders_full` || Иста патека, исто поле ||
    22 || `v_driver_deliveries` || LEFT JOIN `customer_order` по `comp_order_id` ||
    23 || `v_contracts_revenue` || CTE `contract_metrics` — JOIN по `comp_order_id` ||
    24 || `v_company_billing_overview` || CTE `invoice_totals` — LEFT JOIN по `comp_order_id` ||
     60Проверката ги прикажува имињата и дефинициите. IF NOT EXISTS спречува повторно креирање под исто име, но не проверува дали постојната дефиниција е еднаква на наведената.
    2561
    26 == Колонски план ==
    27 ||= Колона ||= Позиција ||= Причина ||
    28 || `comp_order_id` || Единечна || FK колона — поврзување на `customer_order` со `company_order` ||
     62== Влијание врз перформансите ==
    2963
    30 == Верификација ==
    31 {{{
    32 #!sql
    33 SELECT indexname, indexdef
    34 FROM pg_indexes
    35 WHERE schemaname = 'kbnteam'
    36   AND indexname = 'idx_customer_order_comp_order_id';
    37 }}}
     64Изборот меѓу секвенцијално читање, индексно читање и други планови зависи од обемот на податоците, селективноста на филтрите и статистиките. Индексите не гарантираат забрзување или отстранување на сортирањата и спојувањата. Плановите и времињата се утврдуваат со мерење.
    3865
    39 == Напомена за дупликати ==
    40 Овој индекс е дефиниран и во `v_orders_full_index.sql`, `v_driver_deliveries_index.sql`, `v_contracts_revenue_index.sql` и `v_company_billing_overview_index.sql`. Клаузулата `IF NOT EXISTS` гарантира дека ќе биде создаден само еднаш, без разлика кој фајл ќе биде извршен прв.
     66== Тестирање на перформанси ==
     67
     68Тест прашалниците за овој преглед се наведени во [wiki:ReviewsFullView v_reviews_full].
     69
     70=== Резултати пред индексирање ===
     71
     72||= Прашалник ||= Execution Time (ms) ||= План / забелешки ||
     73|| Тест 1: по тип и компанија || ___ || ___ ||
     74|| Тест 2: по компанија || ___ || ___ ||
     75|| Тест 3: по доставувач || ___ || ___ ||
     76
     77=== Резултати по индексирање ===
     78
     79||= Прашалник ||= Execution Time (ms) ||= План / забелешки ||
     80|| Тест 1: по тип и компанија || ___ || ___ ||
     81|| Тест 2: по компанија || ___ || ___ ||
     82|| Тест 3: по доставувач || ___ || ___ ||