wiki:phase1

Version 30 (modified by 201166, 3 months ago) ( diff )

--

Индекси


Случај 1

Погледот служи за да ги пронајдеме 20-те најпродавани продукти во изминатата недела. Овој поглед би можел да се користи кога секој корисник ќе ја отвори почетната страна на апликацијата, да му ги прикажеме најпродаваните продукти изминатата недела. Бидејќи во погледот се прават поврзувања со неколку табели, креирани се неколку индекси кои би го убрзале процесот на извршување на прашалниците поврзани со овој поглед:

  • Креиран е индекс на product_id во order_details табелата
  • Креиран е индекс na order_id во order_details табелата
  • Креиран е индекс на date во order табелата

Сите индекси се од тип B-tree. Ако ја погледнете дефиниција на погледот и планот на извршување на прашалниците (сликa View и слика Explain Plan – Before Index), ќе видите дека не се користат никаде индекси при спојување на соодветните табели, а ако го погледнете планот на извршување на прашалникот после индексите (слика Explain Plan – After Index), ќе видите дека се користат индекси при спојување на соодвените табели. Сите индекси се од тип B-tree, затоа што првите два индекси се колони во кои имаме број(integer), при што за такви колони најсоодветен е B-tree индексот. За третиот индекс е искористен B-tree индексот, затоа што во самиот поглед внатре имаме филтер преку кој кажуваме да се најдат најпродаваните продукти во изминатата недела, филтерот е date колоната од orders табелата и тука филтерот е некој ‘date range’, при што за вакви филтри најсоодветен е исто така B-tree индексот. Погледот е комплексен, при што кога ќе извршиме прашалник за овој поглед, времето на извршување е 15 секунди (слика Select – Before Index), пред да додадеме индекси, додека откако додадовме индекси времето на извршување е 6 секунди (слика Select – After Index).

  • Слика 1 - Поглед (View)
  • Слика 2 - План за извршување на прашалникот пред индекси (Explain Plan - Before Index)
  • Слика 3 - Извршување на прашалникот пред индекси (Select - Before Index)
  • Слика 4 - Додавање на индекси (Indexes)
  • Слика 5 - План за извршување на прашалникот после индекси (Explain Plan - After Index)
  • Слика 6 - Извршување на прашалникот после индекси (Select - After Index)








Случај 2

Погледот служи за да ги пронајдеме категориите за секој клиент од кои највеќе купувал продукти. Овој поглед би можел да се користи за да му предложуваме продукти од соодвените категории на клиентот или да ставаме реклами за соодвените категории. За овој поглед филтерот би бил user_id, за да најдеме за секој клиент од кои категории највеќе купувал продукти. Бидејќи во погледот се прават поврзувања со неколку табели, креирани се неколку индекси кои би го убрзале процесот на извршување на прашалниците поврзани со овој поглед:

  • Креиран е индекс на product_id во order_details табелата (постои од претходно)
  • Креиран е индекс na order_id во order_details табелата (постои од претходно)
  • Креиран е индекс на user_id во order табелата
  • Креиран е индекс на category_id во product табелата

Сите индекси се од тип B-tree. Ако ја погледнете дефиниција на погледот и планот на извршување на прашалниците (сликa View и слика Explain Plan – Before Index), ќе видите дека се користат индекси на спојувањето со табелата order_details бидејќи тие индекси се креирани за друг поглед, а ако го погледнете планот на извршување на прашалникот после индексите (слика Explain Plan – After Index), ќе видите дека се користат и новите индекси за спојување со таблите order и category Сите индекси се од тип B-tree, затоа што сите индекси се колони во кои имаме број(integer), при што за такви колони најсоодветен е B-tree индексот. Иако филтерот за погледот е user_id, најсоодветен индекс за вакви пребарувања е B-tree индексот. Погледот е комплексен, при што кога ќе извршиме прашалник за овој поглед, времето на извршување е 2 секунди и 677 милисекунди (слика Select – Before Index), пред да додадеме индекси, додека откако додадовме индекси времето на извршување е 129 милисекунди (слика Select – After Index).

  • Слика 1 - Поглед (View)
  • Слика 2 - План за извршување на прашалникот пред индекси (Explain Plan - Before Index)
  • Слика 3 - Извршување на прашалникот пред индекси (Select - Before Index)
  • Слика 4 - Додавање на индекси (Indexes)
  • Слика 5 - План за извршување на прашалникот после индекси (Explain Plan - After Index)
  • Слика 6 - Извршување на прашалникот после индекси (Select - After Index)







Attachments (14)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.