Changes between Version 3 and Version 4 of QueryOptimization
- Timestamp:
- 05/06/26 10:07:07 (18 hours ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
QueryOptimization
v3 v4 1 1 = Оптимизација на прашалници и погледи = 2 2 3 1. Анализа на поглед 1, добивање на бројот на следбеници и бројот на профили кои ги следи даден корисник 3 === 1. Анализа на поглед 1, добивање на бројот на следбеници и бројот на профили кои ги следи даден корисник === 4 4 - Доколку сакаме да видиме за конкретен артист извршуваме: 5 5 6 6 [[Image(View1_1.png, 800px)]] 7 7 8 - Времето потребно за извршување за овој прашалник е ~6ms. Нема потреба од дополнителни индекси.8 - Времето потребно за извршување за овој прашалник е **~6ms**. Нема потреба од дополнителни индекси. 9 9 - Доколку сакаме да извршиме некаква анализа, на пример да ги земеме најдобрите 10 корисници според број на следбеници, можеме да извршиме: 10 10 11 11 [[Image(View1_2.png, 800px)]] 12 12 13 - Потребно време за извршување на овој прашалник е ~200ms. Нема индекс кој може да се додаде за да ги подобри перформансите на овој прашалник.13 - Потребно време за извршување на овој прашалник е **~200ms**. Нема индекс кој може да се додаде за да ги подобри перформансите на овој прашалник. 14 14 15 15 - Query plan: … … 17 17 [[Image(View1_3.png, 800px)]] 18 18 19 2. Анализа на поглед 2, најактивни корисници на платформата според бројот на слушања во изминатите 30 дена. 19 === 2. Анализа на поглед 2, најактивни корисници на платформата според бројот на слушања во изминатите 30 дена === 20 20 21 21 - Доколку сакаме да видиме кои се најактивните корисници на платформата изминатите 30 дена, извршуваме: … … 27 27 [[Image(View2_2.png, 800px)]] 28 28 29 - **~ 250ms**29 - **~250ms** 30 30 31 31 - Можеме да додадеме индекс на streamed_at колоната со цел да избегнеме sequential scan на song_streams табелата: … … 37 37 [[Image(View2_4.png, 800px)]] 38 38 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
