Changes between Version 7 and Version 8 of OtherTopics


Ignore:
Timestamp:
02/27/26 06:12:30 (3 weeks ago)
Author:
221181
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • OtherTopics

    v7 v8  
    172172==== 1.1. Без индекс (Before Optimization) ====
    173173
     174'''Метод''': Parallel Seq Scan (секвенцијално пребарување). Базата на податоци мора да ги прочита сите 50.000 редови еден по еден.
     175
     176'''Времетраење: 45.2 ms'''
     177
     178'''Анализа:''' Многу бавно.
     179
     180==== 1.2. Стратегија за индексирање (Partial Index) ====
     181
     182Наместо да се индексира целата табела, е креиран делумен индекс (Partial Index) кој ги вклучува само записите каде што status = 'Pending'.
     183
     184Ова го намалува големината на индексот и ја забрзува извршувањето на барањето.
     185
     186'''Применет индекс:'''
     187{{{
     188CREATE INDEX idx_po_status_pending ON purchase_order(expected_delivery_date) WHERE status = 'Pending';
     189}}}
     190
     191==== 1.3. Со индекс ====
     192
    174193Во базата на податоци нема дефинирано индекс на полето за датум.
    175194
    176 '''Метод''': Parallel Seq Scan (секвенцијално пребарување). Базата на податоци мора да ги прочита сите 50.000 редови еден по еден.
    177 
    178 '''Времетраење: 45.2 ms'''
     195'''Метод''': Index Scan.
     196
     197'''Времетраење: 0.9 ms '''
     198
     199'''Анализа:''' Многу по брзо.
     200
     201=== Сценарио 2: Пребарување на производи ===
     202
     203Цел: Корисникот да може да пребарува производи според името (на пример: производи што започнуваат со "Laptop").
     204
     205{{{
     206SELECT * FROM product WHERE name LIKE 'Laptop%';
     207}}}
     208
     209==== 2.1. Без индекс (Before Optimization) ====
     210
     211'''Метод''': Seq Scan. Сите 10.000 редови со производи се проверени еден по еден со споредба на текст.
     212
     213'''Времетраење: 18.5 ms'''
    179214
    180215'''Анализа:''' Многу бавно.
    181216
    182 ==== 1.2. Стратегија за индексирање (Partial Index) ====
    183 
    184 Наместо да се индексира целата табела, е креиран делумен индекс (Partial Index) кој ги вклучува само записите каде што status = 'Pending'.
    185 
    186 Ова го намалува големината на индексот и ја забрзува извршувањето на барањето.
     217==== 2.2. Стратегија за индексирање (Partial Index) ====
     218
     219За да се забрзаат текстуалните пребарувања, е применет B-Tree индекс на колоната '''name'''.
     220Параметарот text_pattern_ops овозможува LIKE барањата да можат да го користат индексот.
    187221
    188222'''Применет индекс:'''
    189223{{{
    190 CREATE INDEX idx_po_status_pending ON purchase_order(expected_delivery_date) WHERE status = 'Pending';
    191 }}}
    192 
    193 ==== 1.3. Со индекс ====
    194 
    195 Во базата на податоци нема дефинирано индекс на полето за датум.
     224CREATE INDEX idx_product_name ON product(name text_pattern_ops);
     225}}}
     226
     227==== 2.3. Со индекс ====
     228
    196229
    197230'''Метод''': Index Scan.
    198231
    199 '''Времетраење: 0.9 ms '''
     232'''Времетраење: 0.15 ms '''
    200233
    201234'''Анализа:''' Многу по брзо.