| Version 1 (modified by , 4 days ago) ( diff ) |
|---|
Фаза 3: Оптимизација на прашалници и погледи
Во оваа фаза е направена детална EXPLAIN ANALYZE анализа пред и по оптимизацијата, како и додавање на B-Tree индекси и рефакторирање на прашалниците. Целокупниот процес со плановите за извршување е документиран.
Целосната документација со EXPLAIN ANALYZE резултатите (PDF) може да се преземе овде:
Анализа и оптимизација: new_event_ticket_sales_status
- Пред оптимизација: Извршувањето траеше ~38.7 секунди (38712 ms) поради Sequential Scan на милиони записи и прелевање на сортирањето на диск (Disk Spill).
- Оптимизација: Додадени се B-Tree индекси на надворешните клучеви (
idx_ticket_event_valid) и применета е техниката Pre-aggregated Join (со користење на CTE за рано групирање пред спојување со големи табели). - По оптимизација: Времето на извршување е намалено на 5.4 ms, што е забрзување од над 99%.
Анализа и оптимизација: new_user_ticket_history
- Пред оптимизација: Времето на извршување изнесуваше огромни ~138.2 секунди поради "Hash Batches" проблем и I/O тесно грло при спојување на табели од 8.9 и 5 милиони редици во меморија.
- Оптимизација: Креирани се индексите
idx_reservation_userиidx_ticket_reservation. - По оптимизација: При филтрирање за конкретен корисник, базата успешно користи Nested Loop операција, спуштајќи го времето на извршување на 7.5 ms.
Општа оптимизација
За останатите погледи, додадени се индекси на надворешните клучеви (idx_venue_city, idx_parking_venue, idx_staff_event, итн.), што овозможува инстант пребарувања за помалку од 10 милисекунди.
Note:
See TracWiki
for help on using the wiki.
