Changes between Version 5 and Version 6 of AdvancedTopics
- Timestamp:
- 05/21/26 18:38:53 (5 days ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
AdvancedTopics
v5 v6 7 7 За решавање на овој проблем користевме RANGE партиционирање базирано на временски атрибути, бидејќи податоците во системот се природно временски ориентирани, освен за билетите за нив користевме HASH партиционирање. 8 8 9 == 1. Train Trip табела – партиционирање по departure_time == 9 ## 1. Train Trip табела – партиционирање по `departure_time` 10 10 11 Табелата Train_Trip претставува централна табела во системот, бидејќи ги содржи сите информации за железничките патувања (време на поаѓање, пристигнување, статус, воз, вработени итн.).11 Табелата **Train_Trip** претставува централна табела во системот, бидејќи ги содржи сите информации за железничките патувања, како што се времето на поаѓање и пристигнување, статусот на патувањето, поврзаниот воз, како и вработените кои се вклучени во неговото извршување. 12 12 13 Причини за партиционирање: 13 --- 14 14 15 -Висока фреквенција на податоци 15 ### Причини за партиционирање 16 16 17 Секој ден се генерираат нови патувања. 18 Со тек на време, оваа табела станува една од најголемите во системот. 17 #### • Висока фреквенција на податоци 18 Секојдневно се генерираат голем број нови патувања. 19 Со тек на време, оваа табела станува една од најголемите во целиот систем, што може да доведе до намалување на перформансите при пребарување и обработка на податоци. 19 20 20 - Природна временска структура21 --- 21 22 22 Секое патување има точно дефиниран departure_time. 23 Овој атрибут е идеален за RANGE партиционирање. 23 #### • Природна временска структура 24 Секое патување има точно дефиниран атрибут `departure_time`. 25 Овој атрибут е идеален за **RANGE партиционирање**, бидејќи податоците природно се групираат по временски интервали (месеци/години). 24 26 25 - Типични прашања во системот27 --- 26 28 27 „Сите патувања во одреден месец“ 28 „Патувања во 2026 година“ 29 „Доцнења во последната недела“ 29 #### • Типични прашања во системот 30 Во реални услови, најчестите барања за оваа табела се од типот: 30 31 31 Овие барања бараат временско филтрирање, кое со партиционирање се извршува многу побрзо. 32 - „Сите патувања во одреден месец“ 33 - „Патувања во 2026 година“ 34 - „Доцнења во последната недела“ 32 35 33 -Како помага партиционирањето: 36 Овие барања бараат ефикасно временско филтрирање, кое со партиционирање се извршува значително побрзо, бидејќи се пребарува само релевантната партиција, а не целата табела. 34 37 35 Со месечни партиции, PostgreSQL чита само дел од податоците (приближно 1/12 од годишните податоци), наместо целата табела. Ова значително ја подобрува брзината на SELECT, UPDATE и DELETE операции. 38 --- 36 39 37 Дополнително, DEFAULT партицијата овозможува стабилност при внесување на податоци кои не спаѓаат во дефинираните временски интервали. 40 ### Како помага партиционирањето 41 42 Со примена на **месечни партиции**, PostgreSQL работи само со мал дел од податоците (приближно 1/12 од годишните податоци), наместо да ја скенира целата табела. Ова значително ја подобрува брзината на: 43 44 - `SELECT` операции 45 - `UPDATE` операции 46 - `DELETE` операции 47 48 --- 49 50 #### • DEFAULT партиција 51 Дополнително, се користи и **DEFAULT партиција**, која обезбедува стабилност на системот. Таа ги прифаќа сите записи кои не спаѓаат во дефинираните временски интервали и спречува грешки при внесување на податоци.
