PostgreSQL

Hogyan hozzunk létre indexeket a PostgreSQL-ben

Hogyan hozzunk létre indexeket a PostgreSQL-ben

Az indexek speciális keresési táblák, amelyeket az adatbank vadászmotorjai használnak a lekérdezési eredmények gyorsítására. Az index a táblázatban található információkra való hivatkozás. Például, ha a névjegyzékben szereplő nevek nincsenek betűrendben, akkor minden sorban le kell lépnie és minden néven át kell keresnie, mielőtt elérné a keresett telefonszámot. Egy index felgyorsítja a SELECT és WHERE kifejezéseket, elvégezve az adatbevitelt az UPDATE és INSERT parancsokban. Függetlenül attól, hogy indexeket illesztenek be vagy törölnek, nincs hatással a táblázatban található információkra. Az indexek ugyanúgy lehetnek különlegesek, mint az UNIQUE korlátozás segít elkerülni a replikarekordokat abban a mezőben vagy mezőkészletben, amelyre az index tartozik.

Általános szintaxis

A következő általános szintaxist használják indexek létrehozására.

>> CREATE INDEX index_name ON tábla_neve (oszlopnév);

Az indexek kidolgozásának megkezdéséhez nyissa meg az alkalmazássávon a Postgresql pgAdminjét. Az alábbiakban megjelenik a "Szerverek" opció. Kattintson a jobb gombbal erre a lehetőségre, és csatlakoztassa az adatbázishoz.

Mint láthatja, a 'Test' adatbázis szerepel az 'Adatbázisok' opcióban. Ha még nincs, kattintson a jobb gombbal az „Adatbázisok” elemre, lépjen a „Létrehozás” lehetőségre, és nevezze el az adatbázist a preferenciái szerint.

Bontsa ki a "Sémák" opciót, és ott megtalálja a "Táblázatok" opciót. Ha még nincs, kattintson rá a jobb gombbal, lépjen a "Létrehozás" elemre, és kattintson a "Tábla" lehetőségre egy új táblázat létrehozásához. Mivel már létrehoztuk az 'emp' táblát, láthatja a listában.

Próbálkozzon a SELECT lekérdezéssel a Lekérdezésszerkesztőben az 'emp' tábla rekordjainak lekéréséhez, az alábbiak szerint.

>> SELECT * FROM public.emp RENDELÉS „id” ASC;

A következő adatok szerepelnek az 'emp' táblázatban.

Hozzon létre egy oszlopos indexeket

Bontsa ki az 'emp' táblázatot különböző kategóriák kereséséhez, pl.g., Oszlopok, korlátozások, indexek stb. Kattintson a jobb gombbal az „Indexek” elemre, lépjen a „Létrehozás” lehetőségre, majd az „Index” gombra kattintva hozzon létre új indexet.

Az Index párbeszédablak segítségével készítsen indexet az adott 'emp' táblához vagy az esetleges megjelenítéshez. Itt két fül van: 'Általános' és 'Definíció.'Az' Általános 'fülön illesszen be egy új címet az új indexhez a' Név 'mezőbe. Válassza ki a „táblateret”, amely alatt az új index tárolásra kerül, a „Asztalterek” melletti legördülő menü segítségével.'Mint a' Megjegyzés 'területen, itt is tegyen index-megjegyzéseket. A folyamat megkezdéséhez lépjen a "Definíció" fülre.

Itt adja meg az "Hozzáférési módot" az index típusának kiválasztásával. Ezután az index létrehozása "Egyedi" néven számos más lehetőséget is felsorol. Az „Oszlopok” területen érintse meg a „+” jelet, és adja hozzá az indexeléshez használandó oszlopneveket. Amint láthatja, az indexelést csak a „Telefon” oszlopra alkalmaztuk. A kezdéshez válassza ki az SQL szakaszt.

Az SQL fül mutatja az SQL parancsot, amelyet a bemenetek az Index párbeszédpanelen hoztak létre. Az index létrehozásához kattintson a "Mentés" gombra.

Ismét lépjen a "Táblák" opcióra, és keresse meg az "emp" táblázatot. Frissítse az 'Indexes' opciót, és megtalálja benne az újonnan létrehozott 'index_on_phone' indexet.

Most az EXPLAIN SELECT parancsot hajtjuk végre, hogy ellenőrizzük az indexek eredményeit a WHERE záradékkal. Ez a következő kimenetet eredményezi, amely azt mondja: 'Seq Scan on emp.- Csodálkozhat, miért történt ez indexek használata közben.

Ok: A Postgres-tervező különböző okokból dönthet úgy, hogy nincs indexe. A stratéga legtöbbször a legjobb döntéseket hozza, annak ellenére, hogy az okok nem mindig egyértelműek. Rendben van, ha indexes keresést használnak egyes lekérdezésekben, de nem mindenben. Az egyik táblából visszaküldött bejegyzések a lekérdezés által visszaadott fix értékektől függően változhatnak. Mivel ez bekövetkezik, a szekvencia-vizsgálat szinte mindig gyorsabb, mint egy index-vizsgálat, ami azt jelzi, hogy a lekérdezés-tervezőnek talán igaza volt annak megállapításában, hogy a lekérdezés ilyen módon történő futtatásának költségei csökkennek.

Hozzon létre több oszlopindexet

Több oszlopos indexek létrehozásához nyissa meg a parancssori héjat, és fontolja meg a következő „student” táblázatot, hogy elkezdje a munkát több oszlopos indexekkel.

>> SELECT * FROM hallgató;

Írja bele a következő CREATE INDEX lekérdezést. Ez a lekérdezés létrehoz egy „new_index” nevű indexet a „hallgató” táblázat „sznám” és „kor” oszlopaiban.

>> INDEX létrehozása new_index ON Student (szipka, életkor);

Most felsoroljuk az újonnan létrehozott 'new_index' index tulajdonságait és attribútumait a '\ d' paranccsal. Amint a képen látható, ez egy btree típusú index, amelyet a „sznám” és az „életkor” oszlopokra alkalmaztunk.

>> \ d new_index;

Hozza létre az UNIQUE Index-et

Egyedi index összeállításához tegyük fel a következő 'emp' táblázatot.

>> SELECT * FROM emp;

Hajtsa végre a CREATE UNIQUE INDEX lekérdezést a shellben, majd az 'empind' indexnév az 'emp' táblázat 'name' oszlopában. A kimenetben láthatja, hogy az egyedi index nem alkalmazható olyan oszlopokra, amelyek duplikált „név” értékekkel rendelkeznek.

>> CREATE egyedi INDEX empind ON emp (név);

Ügyeljen arra, hogy az egyedi indexet csak azokra az oszlopokra alkalmazza, amelyek nem tartalmaznak duplikátumot. Az 'emp' táblázatnál feltételezheti, hogy csak az 'id' oszlop tartalmaz egyedi értékeket. Tehát egyedi indexet alkalmazunk rá.

>> CREATE egyedi INDEX empind ON emp (id);

A következők az egyedi index attribútumai.

>> \ d empid;

Cseppindex

A DROP utasítással indexet lehet eltávolítani a táblából.

>> DROP INDEX empind;

Következtetés

Míg az indexeket az adatbázisok hatékonyságának javítására tervezték, bizonyos esetekben nem lehet indexet használni. Index használata esetén a következő szabályokat kell figyelembe venni:

A legjobb játékkonzol emulátorok Linuxhoz
Ez a cikk felsorolja a Linux számára elérhető népszerű játékkonzol-emulációs szoftvereket. Az emuláció egy szoftver-kompatibilitási réteg, amely játék...
A legjobb Linux-disztribútorok játékhoz 2021-ben
A Linux operációs rendszer hosszú utat tett meg eredeti, egyszerű, szerver alapú kinézetétől. Ez az operációs rendszer rendkívül javult az elmúlt évek...
Hogyan lehet rögzíteni és streamelni a játékmenetét Linuxon
Korábban a játékokat csak hobbinak tekintették, de az idő múlásával a játékipar hatalmas növekedést ért el a technológia és a játékosok száma szempont...