Changes between Version 3 and Version 4 of QueryOptimization


Ignore:
Timestamp:
05/06/26 10:07:07 (18 hours ago)
Author:
231017
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • QueryOptimization

    v3 v4  
    11= Оптимизација на прашалници и погледи =
    22
    3 1. Анализа на поглед 1, добивање на бројот на следбеници и бројот на профили кои ги следи даден корисник
     3=== 1. Анализа на поглед 1, добивање на бројот на следбеници и бројот на профили кои ги следи даден корисник ===
    44- Доколку сакаме да видиме за конкретен артист извршуваме:
    55
    66  [[Image(View1_1.png, 800px)]]
    77
    8   - Времето потребно за извршување за овој прашалник е ~6ms. Нема потреба од дополнителни индекси.
     8  - Времето потребно за извршување за овој прашалник е **~6ms**. Нема потреба од дополнителни индекси.
    99  - Доколку сакаме да извршиме некаква анализа, на пример да ги земеме најдобрите 10 корисници според број на следбеници, можеме да извршиме:
    1010
    1111    [[Image(View1_2.png, 800px)]]
    1212
    13   - Потребно време за извршување на овој прашалник е ~200ms. Нема индекс кој може да се додаде за да ги подобри перформансите на овој прашалник.
     13  - Потребно време за извршување на овој прашалник е **~200ms**. Нема индекс кој може да се додаде за да ги подобри перформансите на овој прашалник.
    1414
    1515  - Query plan:
     
    1717  [[Image(View1_3.png, 800px)]]
    1818
    19 2. Анализа на поглед 2, најактивни корисници на платформата според бројот на слушања во изминатите 30 дена.
     19=== 2. Анализа на поглед 2, најактивни корисници на платформата според бројот на слушања во изминатите 30 дена ===
    2020
    2121- Доколку сакаме да видиме кои се најактивните корисници на платформата изминатите 30 дена, извршуваме:
     
    2727  [[Image(View2_2.png, 800px)]]
    2828
    29 - **~ 250ms**
     29- **~250ms**
    3030
    3131- Можеме да додадеме индекс на streamed_at колоната со цел да избегнеме sequential scan на song_streams табелата:
     
    3737  [[Image(View2_4.png, 800px)]]
    3838
    39 - **~ 200ms** -> ~20% подобри перформанси
     39- **~200ms** -> ~20% подобри перформанси
     40
     41
     42=== 3. Анализа на поглед 3, рангирање на песни по нивните просечни оценки и бројот на вкупни оценки, соодветно ===
     43
     44- Доколку сакаме да ги видиме најдобро оценуваните песни на платформата, извршуваме:
     45
     46  [[Image(View3_1.png, 800px)]]
     47
     48- Време потребно за пребарување:
     49
     50  [[Image(View3_2.png, 800px)]]
     51
     52- **~260ms**
     53
     54- Можеме да додадеме индекс на song_id, grade со цел да избегнеме sequential scan на songs:
     55
     56  [[Image(View3_3.png, 800px)]]
     57
     58- Време на извршување по додавање на индекс:
     59 
     60  [[Image(View3_4.png, 800px)]]
     61
     62- **~200ms** -> ~20% подобри перформанси
     63
     64- Време потребно за внесување на нов запис без индекс:
     65
     66  [[Image(View3_5.png, 800px)]]
     67 
     68  [[Image(View3_6.png, 800px)]]
     69
     70- Со индекс:
     71
     72  [[Image(View3_7.png, 800px)]]
     73
     74- Време потребно за ажурирање на запис без индекс:
     75
     76  [[Image(View3_8.png, 800px)]]
     77
     78  [[Image(View3_9.png, 800px)]]
     79
     80- Со индекс:
     81
     82  [[Image(View3_10.png, 800px)]]
     83
     84- Во двата случаи (запишување и ажурирање) нема никаков ефект врз перформансите додавање на индексот
     85 
     86