Changes between Version 53 and Version 54 of AdvancedTopics


Ignore:
Timestamp:
05/22/26 02:18:41 (5 days ago)
Author:
231189
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AdvancedTopics

    v53 v54  
    176176
    177177=== Kод со објаснување
    178 
     178- **STEP 1: Преименување на старата табела**
     179
     180[[Image(Old_ticket.png, 800px)]]
     181
     182-Се зачувуваат постоечките податоци во стара табела old_ticket
     183
     184-Ова овозможува безбедна миграција кон нова партиционирана структура
     185
     186-Не се губат претходно генерираните податоци
     187
     188- **STEP 2: Креирање на нова партиционирана табела**
     189
     190[[Image(new_ticket.png, 500px)]]
     191
     192-Се креира нова главна табела Ticket која служи како parent табела
     193
     194-Податоците се дефинирани да се делат со користење на PARTITION BY HASH (ticket_id)
     195
     196-Типот на податок за цената е оптимизиран во NUMERIC(5,2) за соодветна поддршка на вредностите
     197
     198- **STEP 3: Автоматско креирање партиции (динамички преку DO блок)**
     199
     200[[Image(Particija.png, 500px)]]
     201
     202-Се користи динамички DO блок со FOR јамка за автоматизација
     203
     204-Автоматски се креираат 16 партиции (од ticket_p0 до ticket_p15)
     205
     206-Секоја партиција се заснова на MODULUS 16 и соодветниот REMAINDER
     207
     208-Спречува мануелно пишување на 16 посебни SQL команди за креирање табели
     209
     210- **STEP 4: Внесување податоци од стара табела (Миграција)**
     211
     212[[Image("Insert vo particiite.png", 500px)]]
     213
     214-Ги префрла сите зачувани записи од old_ticket во новата структура
     215
     216-PostgreSQL автоматски во позадина ги распределува редовите низ 16-те партиции врз основа на хаш функцијата
     217
     218- **STEP 5: Проверка на сите партиции**
     219
     220[[Image("Proverka dali site particii postojat.png", 500px)]]
     221
     222-Врши селекција од системската табела pg_inherits
     223
     224-Ги прикажува сите реално креирани партиции под главната табела ticket
     225
     226-Служи како потврда за успешна структура на базата
     227
     228=== Заклучок
     229
     230Со имплементација на HASH партиционирање на табелата Ticket, успеавме масовниот волумен од милиони податоци да го поделиме на 16 рамномерни физички табели. Пребарувањето на билетите сега се извршува моментално бидејќи PostgreSQL точно знае во која под-табела се наоѓа бараниот ticket_id. Ова резултира со драстично намалување на оптоварувањето, побрз одзив на системот и долгорочна скалабилност на железничката платформа.