Kaj je indeks v jeziku SQL?

Kaj je indeks v jeziku SQL? Ali lahko razložite ali navedete referenco za jasno razumevanje?

Kje naj uporabim indeks?

Rešitev

Indeks se uporablja za pospešitev iskanja v zbirki podatkov. MySQL ima na to temo dobro dokumentacijo (ki velja tudi za druge strežnike SQL): http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html.

Indeks se lahko uporabi za učinkovito iskanje vseh vrstic, ki ustrezajo nekemu stolpcu v poizvedbi, nato pa za iskanje natančnih ujemanj preide le to podmnožico tabele. Če v stavku WHERE nimate indeksov za noben stolpec, mora strežnik SQL pregledati celotno tabelo in preveriti vsako vrstico, ali se ujema, kar je pri velikih tabelah lahko počasna operacija.

Indeks je lahko tudi indeks UNIQUE, kar pomeni, da v tem stolpcu ne morete imeti podvojenih vrednosti, ali pa indeks PRIMARY KEY, ki v nekaterih pomnilniških strojih določa, kje v datoteki zbirke podatkov je shranjena vrednost.

V MySQL lahko pred stavkom SELECT uporabite EXPLAIN, da preverite, ali bo poizvedba uporabila kakšen indeks. To je dober začetek za odpravljanje težav z zmogljivostjo. Več o tem preberite tukaj: http://dev.mysql.com/doc/refman/5.0/en/explain.html.

Komentarji (0)

Indeks se uporablja za pospešitev delovanja poizvedb. To doseže tako, da zmanjša število podatkovnih strani podatkovne zbirke, ki jih je treba obiskati/pregledati.

V strežniku SQL Server skupinski indeks določa fizični vrstni red podatkov v tabeli. Na tabelo je lahko samo en grozdni indeks (grozdni indeks JE tabela). Vsi drugi indeksi v tabeli se imenujejo neskupinski.

Komentarji (0)

[Indeks][1] se uporablja iz več različnih razlogov. Glavni razlog je pospeševanje poizvedovanja, tako da lahko hitreje dobite vrstice ali razvrstite vrstice. Drugi razlog je opredelitev indeksa primarnega ključa ali edinstvenega indeksa, ki zagotavlja, da noben drug stolpec nima enakih vrednosti.

[1]: http://en.wikipedia.org/wiki/Index_(podatkovna baza)

Komentarji (0)