„PostgreSQL“

Kaip sukurti indeksus „PostgreSQL“

Kaip sukurti indeksus „PostgreSQL“

Indeksai yra specializuotos paieškos lentelės, kurias duomenų bankų paieškos sistemos naudoja užklausos rezultatams pagreitinti. Indeksas yra nuoroda į informaciją lentelėje. Pvz., Jei kontaktų knygos vardai nėra suskirstyti pagal abėcėlę, turėtumėte eiti žemyn kiekvienoje eilutėje ir ieškoti kiekviename varde, kol pasieksite konkretų telefono numerį, kurio ieškote. Indeksas pagreitina komandas „SELECT“ ir frazes WHERE, atliekant duomenų įvedimą komandose „UPDATE“ ir „INSERT“. Nepaisant to, ar indeksai įterpiami, ar ištrinami, lentelėje esančiai informacijai įtakos neturi. Indeksai gali būti specialūs tuo pačiu būdu, kaip UNIQUE apribojimas padeda išvengti kopijų įrašų lauke ar laukų rinkinyje, kuriam yra indeksas.

Bendroji sintaksė

Ši bendra sintaksė naudojama kuriant indeksus.

>> CREATE INDEX index_name ON lentelės_vardas (stulpelio_vardas);

Norėdami pradėti dirbti su rodyklėmis, atidarykite programos juostą „Postgresql“ pgAdmin. Žemiau rasite parinktį „Serveriai“. Dešiniuoju pelės mygtuku spustelėkite šią parinktį ir prijunkite ją prie duomenų bazės.

Kaip matote, duomenų bazė „Test“ yra įtraukta į parinktį „Databases“. Jei neturite, dešiniuoju pelės mygtuku spustelėkite „Duomenų bazės“, eikite į parinktį „Kurti“ ir pavadinkite duomenų bazę pagal savo pageidavimus.

Išplėskite parinktį „Schemos“ ir ten rasite parinktį „Lentelės“. Jei jo neturite, dešiniuoju pelės mygtuku spustelėkite jį, eikite į „Kurti“ ir spustelėkite parinktį „Lentelė“, kad sukurtumėte naują lentelę. Kadangi mes jau sukūrėme lentelę „emp“, galite pamatyti ją sąraše.

Pabandykite Užklausų rengyklėje pateikti užklausą SELECT, kad gautumėte lentelės „emp“ įrašus, kaip parodyta žemiau.

>> PASIRINKTI * IŠ viešo.patvirtinti UŽSAKYTI „id“ ASC;

Šie duomenys bus „emp“ lentelėje.

Sukurkite vieno stulpelio rodykles

Išplėskite „emp“ lentelę, kad rastumėte įvairių kategorijų, pvz.g., Stulpeliai, apribojimai, rodyklės ir kt. Dešiniuoju pelės mygtuku spustelėkite „Indeksai“, eikite į parinktį „Kurti“ ir spustelėkite „Rodyklė“, kad sukurtumėte naują indeksą.

Naudodami dialogo langą „Rodyklė“, susikurkite nurodytos „emp“ lentelės indeksą arba įvykio rodinį. Čia yra du skirtukai: „Bendra“ ir „Apibrėžimas“.„Skirtuke„ Bendra “į lauką„ Pavadinimas “įterpkite konkretų naujojo indekso pavadinimą. Pasirinkite išskleidžiamąjį sąrašą, esantį šalia „Stalo erdvė“, „lentų srityje“, po kuria bus saugomas naujas indeksas.„Kaip ir srityje„ Komentaras “, komentarus komentuokite čia. Norėdami pradėti šį procesą, eikite į skirtuką „Apibrėžimas“.

Čia nurodykite „Prieigos metodą“ pasirinkdami indekso tipą. Po to, norėdami sukurti savo indeksą kaip „Unikalus“, ten yra keletas kitų parinkčių. „Stulpelių“ srityje bakstelėkite „+“ ženklą ir pridėkite stulpelių pavadinimus, kurie bus naudojami indeksavimui. Kaip matote, indeksavimą taikėme tik stulpelyje „Telefonas“. Norėdami pradėti, pasirinkite SQL skyrių.

Skirtuke SQL rodoma SQL komanda, kurią sukūrė jūsų įvestys per dialogo langą Rodyklė. Norėdami sukurti rodyklę, spustelėkite mygtuką „Išsaugoti“.

Vėlgi eikite į parinktį „Lentelės“ ir eikite į lentelę „emp“. Atnaujinkite parinktį „Indeksai“ ir joje rasite naujai sukurtą indeksą „index_on_phone“.

Dabar atliksime komandą EXPLAIN SELECT, kad patikrintume indeksų rezultatus su sąlyga WHERE. Rezultatas bus toks: „Seq Scan on emp.„Jums gali kilti klausimas, kodėl taip atsitiko, kai naudojate indeksus.

Priežastis: „Postgres“ planuotojas gali nuspręsti neturėti indekso dėl įvairių priežasčių. Strategas dažniausiai priima geriausius sprendimus, nors priežastys ne visada aiškios. Puiku, jei indekso paieška naudojama kai kuriose užklausose, bet ne visose. Bet kurios lentelės grąžinti įrašai gali skirtis, priklausomai nuo užklausos grąžintų fiksuotų verčių. Kadangi taip atsitinka, sekos nuskaitymas yra beveik visada greitesnis nei indekso nuskaitymas, o tai rodo, kad galbūt užklausos planavimo priemonė teisingai nustatė, kad tokiu būdu vykdant užklausą mažinamos išlaidos.

Sukurkite kelis stulpelių indeksus

Norėdami sukurti kelių stulpelių indeksus, atidarykite komandų eilutės apvalkalą ir apsvarstykite šią lentelę „studentas“, kad pradėtumėte dirbti su rodyklėmis su keliais stulpeliais.

>> PASIRINKTI * IŠ studento;

Į jį įrašykite šią užklausą CREATE INDEX. Ši užklausa sukurs indeksą pavadinimu „new_index“ lentelės „studentas“ stulpeliuose „sname“ ir „age“.

>> SUKURTI RODYKL new new_index ON Studentas (sname, amžius);

Dabar naudodami komandą „\ d“ išvardysime naujai sukurto „new_index“ indekso ypatybes ir atributus. Kaip matote paveikslėlyje, tai yra btree tipo indeksas, pritaikytas stulpeliams „sname“ ir „age“.

>> \ d new_index;

Sukurti unikalų indeksą

Norėdami sukurti unikalų indeksą, laikykitės šios „emp“ lentelės.

>> PASIRINKTI * IŠ emp;

Korpuse vykdykite užklausą CREATE UNIQUE INDEX, po to lentelės „emp“ stulpelyje „name“ nurodykite indekso pavadinimą „empind“. Išvestyje galite pamatyti, kad unikalaus indekso negalima pritaikyti stulpeliui, kuriame yra pasikartojančios „name“ reikšmės.

>> SUKURK unikalų INDEX empind ON emp (vardas);

Unikalų indeksą būtinai pritaikykite tik stulpeliams, kuriuose nėra dublikatų. „Emp“ lentelėje galite manyti, kad tik stulpelyje „id“ yra unikalių reikšmių. Taigi, pritaikysime jam unikalų indeksą.

>> SUKURK unikalų INDEX empind ON emp (id);

Toliau pateikiami unikalaus indekso atributai.

>> \ d empid;

Sumažėjimo indeksas

DROP sakinys naudojamas indeksui pašalinti iš lentelės.

>> DROP INDEX empind;

Išvada

Nors indeksai yra skirti pagerinti duomenų bazių efektyvumą, kai kuriais atvejais negalima naudoti indekso. Naudojant indeksą, reikia atsižvelgti į šias taisykles:

Kaip padidinti FPS sistemoje „Linux“?
FPS reiškia Kadrai per sekundę. FPS užduotis yra išmatuoti kadrų greitį atkuriant vaizdo įrašus ar žaidimus. Paprastais žodžiais, nepertraukiamų viso ...
Populiariausi „Oculus App Lab“ žaidimai
Jei esate „Oculus“ laisvų rankų įrangos savininkas, turite žinoti, kaip krauti iš šono. Šoninis įkėlimas yra ne parduotuvėje esančio turinio įdiegimas...
10 geriausių žaidimų, kuriuos reikia žaisti naudojant „Ubuntu“
„Windows“ platforma buvo viena iš dominuojančių žaidimų platformų dėl didžiulio procento žaidimų, kurie šiandien kuriami natūraliai palaikant „Windows...