Changes between Version 9 and Version 10 of OtherTopics


Ignore:
Timestamp:
02/13/26 21:10:45 (2 weeks ago)
Author:
231136
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • OtherTopics

    v9 v10  
    7676}}}
    7777
    78 Можеме да забележиме користење на индекс преку `Index Only Scan`, сега просечното време за 10 извршувања е **0,83 ms**. Добиваме подобрување на перформансите од **~80x**.
     78Можеме да забележиме користење на индекс преку `Index Only Scan`, сега просечното време за 10 извршувања е **0,83 ms**.
    7979
    8080
     
    170170}}}
    171171
    172 Просечно време на извршување е **15,04ms** -> **~6x** подобри перформанси. Во планот забележуваме замена на секвенцијално скенирање со скенирање на индекс.
     172Просечно време на извршување е **15,04ms**. Во планот забележуваме замена на секвенцијално скенирање со скенирање на индекс.
    173173
    174174Заклучуваме дека перформансите на процедурата ќе бидат многу подобри со овој индекс и го додаваме истиот.
     
    269269што претставува значително подобрување на перформансите.
    270270
     271=== Сценарио 3
     272
     273Ќе разгледуваме прашалник кој ги наоѓа сите песни кои припаѓаат на одреден албум.
     274
     275{{{
     276select *
     277from songs s
     278left join albums a on a.id = s.album_id
     279where s.album_id = :albumId;
     280}}}
     281
     282Од претходните примери веќе имаме генерирано доволно записи во потребните табели.
     283
     284Додаваме индекс на `album_id`
     285
     286{{{
     287CREATE INDEX ON songs(album_id);
     288}}}
     289
     290Без индекс добиваме:
     291+-------------------------------------------------------------------------------------------------------------------------------------+
     292|QUERY PLAN                                                                                                                           |
     293+-------------------------------------------------------------------------------------------------------------------------------------+
     294|Nested Loop Left Join  (cost=1000.15..11058.40 rows=5 width=36) (actual time=5.216..57.666 rows=3 loops=1)                           |
     295|  ->  Gather  (cost=1000.00..11050.17 rows=5 width=28) (actual time=5.196..57.634 rows=3 loops=1)                                    |
     296|        Workers Planned: 2                                                                                                           |
     297|        Workers Launched: 2                                                                                                          |
     298|        ->  Parallel Seq Scan on songs s  (cost=0.00..10049.67 rows=2 width=28) (actual time=11.406..27.456 rows=1 loops=3)          |
     299|              Filter: (album_id = 5494023)                                                                                           |
     300|              Rows Removed by Filter: 266666                                                                                         |
     301|  ->  Materialize  (cost=0.15..8.18 rows=1 width=8) (actual time=0.006..0.006 rows=0 loops=3)                                        |
     302|        ->  Index Only Scan using albums_pkey on albums a  (cost=0.15..8.17 rows=1 width=8) (actual time=0.012..0.013 rows=0 loops=1)|
     303|              Index Cond: (id = 5494023)                                                                                             |
     304|              Heap Fetches: 0                                                                                                        |
     305|Planning Time: 0.191 ms                                                                                                              |
     306|Execution Time: 57.726 ms                                                                                                            |
     307+-------------------------------------------------------------------------------------------------------------------------------------+
     308
     309Просечно `Execution time` е **56,24ms**.
     310
     311По додавање на индекс:
     312+-------------------------------------------------------------------------------------------------------------------------------------+
     313|QUERY PLAN                                                                                                                           |
     314+-------------------------------------------------------------------------------------------------------------------------------------+
     315|Nested Loop Left Join  (cost=4.62..32.33 rows=5 width=36) (actual time=0.048..0.054 rows=3 loops=1)                                  |
     316|  ->  Bitmap Heap Scan on songs s  (cost=4.46..24.09 rows=5 width=28) (actual time=0.036..0.041 rows=3 loops=1)                      |
     317|        Recheck Cond: (album_id = 5494023)                                                                                           |
     318|        Heap Blocks: exact=3                                                                                                         |
     319|        ->  Bitmap Index Scan on idx_songs_album  (cost=0.00..4.46 rows=5 width=0) (actual time=0.024..0.024 rows=3 loops=1)         |
     320|              Index Cond: (album_id = 5494023)                                                                                       |
     321|  ->  Materialize  (cost=0.15..8.18 rows=1 width=8) (actual time=0.003..0.003 rows=0 loops=3)                                        |
     322|        ->  Index Only Scan using albums_pkey on albums a  (cost=0.15..8.17 rows=1 width=8) (actual time=0.007..0.007 rows=0 loops=1)|
     323|              Index Cond: (id = 5494023)                                                                                             |
     324|              Heap Fetches: 0                                                                                                        |
     325|Planning Time: 0.155 ms                                                                                                              |
     326|Execution Time: 0.090 ms                                                                                                             |
     327+-------------------------------------------------------------------------------------------------------------------------------------+
     328
     329Просечно `Execution time` е сега **0.092ms**. Можеме да забележиме користење на индекс преку `Bitmap Index Scan on idx_songs_album`.
    271330
    272331== Безбедност и заштита