Водич за МиСКЛ индекс - Стварање, додавање & амп; Кап

Преглед садржаја:

Anonim

Шта је индекс?

Индекси у МиСКЛ сортирају податке организовано узастопно. Они се креирају у колони (колонама) која ће се користити за филтрирање података. Замислите индекс као абецедно сортирану листу. Лакше је претраживати имена која су сортирана по абецеди него она која нису сортирана.

Коришћење индекса на табелама које се често ажурирају може довести до лоших перформанси. То је зато што МиСКЛ ствара нови блок индекса сваки пут када се подаци додају или ажурирају у табели. Генерално, индексе треба користити на табелама чији се подаци не мењају често, али се често користе у одабраним упитима за претрагу.

Шта користити индекс?

Нико не воли споре системе. Високе перформансе система су од примарне важности у готово свим системима база података. Већина предузећа улаже велика средства у хардвер како би проналажење података и манипулације могли бити бржи. Али постоји ограничење улагања у хардвер које предузеће може да уложи. Оптимизација базе података је јефтиније и боље решење.

Спорост у времену одзива обично је последица записа који се насумично чувају у табелама базе података. Упити за претрагу морају да пролазе кроз читав насумично похрањене записе један за другим да би пронашли жељене податке. То резултира лошим базама података када је реч о преузимању података из великих табела. Стога се користе индекси који сортирају податке како би се олакшало претраживање.

Синтакса: Направите индекс

Индекси се могу дефинисати на два начина

  1. У време стварања табеле
  2. Након креирања табеле
Пример:

За наш мифликдб очекујемо пуно претраживања базе података са пуним именом.

Колону „пуна_имена“ додаћемо индексу у нову табелу „мемберс_индекед“.

Скрипта приказана доле помаже нам да то постигнемо.

CREATE TABLE `members_indexed` (`membership_number` int(11) NOT NULL AUTO_INCREMENT,`full_names` varchar(150) DEFAULT NULL,`gender` varchar(6) DEFAULT NULL,`date_of_birth` date DEFAULT NULL,`physical_address` varchar(255) DEFAULT NULL,`postal_address` varchar(255) DEFAULT NULL,`contact_number` varchar(75) DEFAULT NULL,`email` varchar(255) DEFAULT NULL,PRIMARY KEY (`membership_number`),INDEX(full_names)) ENGINE=InnoDB;

Извршите горњу СКЛ скрипту у МиСКЛ радном окружењу против „мифликдб“.

Освежавањем мифликдб приказује се новостворена табела под називом мемберс_индекед.

Табела „Ноте“ мемберс_индекед има „фулл_намес“ у чвору индекса.

Како се база чланова шири, а број записа повећава, упити за претрагу у табели мемберс_индекед који користе клаузуле ВХЕРЕ и ОРДЕР БИ биће много бржи у поређењу са онима који се изводе у табели чланова без дефинисаног индекса.

Додајте основну синтаксу индекса

Горњи пример је креирао индекс приликом дефинисања табеле базе података. Претпоставимо да већ имамо дефинисану табелу и да су упити за претрагу на њој врло спори. Предуго им треба да врате резултате. Након истраге проблема, откривамо да можемо знатно побољшати перформансе система стварањем ИНДЕКС-а на најчешће коришћеном ступцу у клаузули ВХЕРЕ.

За додавање индекса можемо користити следећи упит

CREATE INDEX id_index ON table_name(column_name);

Претпоставимо да су упити за претрагу у табели филмова врло спори и желимо да користимо индекс на „наслову филма“ да бисмо убрзали упите, можемо да користимо следећу скрипту да бисмо то постигли.

CREATE INDEX `title_index` ON `movies`(`title`);

Извршењем горњег упита ствара се индекс на пољу наслова у табели филмова.

То значи да ће сви упити за претрагу на табели филмова који користе „наслов“ бити бржи.

Упити за претрагу у другим пољима у табели филмова и даље ће бити спорији у односу на оне засноване на индексираном пољу.

Напомена: По потреби можете креирати индексе на више колона, у зависности од поља која намеравате да користите за свој претраживач базе података.

Ако желите да погледате индексе дефинисане на одређеној табели, за то можете да користите следећу скрипту.

SHOW INDEXES FROM table_name;

Погледајмо сада све индексе дефинисане на табели филмова у мифликдб.

SHOW INDEXES FROM `movies`;

Извршавање горње скрипте у МиСКЛ радном окружењу против мифликдб даје нам резултате на креираном индексу.

Напомена: МиСКЛ је већ индексирао примарни и страни кључеве на табели. Сваки индекс има своје јединствено име, а приказана је и колона на којој је дефинисан.

Синтакса: Индекс пада

Наредба дроп користи се за уклањање већ дефинисаних индекса из табеле.

Понекад сте већ дефинисали индекс на табели који се често ажурира. Можда ћете желети уклонити индексе из такве табеле да бисте побољшали перформансе УПДАТЕ и ИНСЕРТ упита. Основна синтакса која се користи за испуштање индекса на табелу је следећа.

DROP INDEX `index_id` ON `table_name`;

Погледајмо сада практични пример.

DROP INDEX ` full_names` ON `members_indexed`;

Извршавање горње наредбе испушта индекс са ид `пуна_имена` из табеле мемберс_индекед.

Резиме

  • Индекси су веома моћни када је у питању значајно побољшање перформанси МиСКЛ упита за претрагу.
  • Индекси се могу дефинисати приликом креирања табеле или додати касније након што је табела већ креирана.
  • Индексе можете дефинисати на више колона у табели.
  • СХОВ ИНДЕКС ФРОМ име_табеле користи се за приказ дефинисаних индекса на табели.
  • Наредба ДРОП користи се за уклањање дефинисаног индекса из дате табеле.