Hvad er et indeks i SQL?

Hvad er et index i SQL? Kan du forklare eller henvise til at forstå det klart?

Hvor skal jeg bruge et indeks?

Løsning

Et indeks bruges til at fremskynde søgningen i databasen. MySQL har en god dokumentation om emnet (som også er relevant for andre SQL-servere): http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html

Et indeks kan bruges til effektivt at finde alle rækker, der matcher en kolonne i din forespørgsel, og derefter gå gennem kun denne delmængde af tabellen for at finde nøjagtige match. Hvis du ikke har indekser på nogen kolonne i WHERE-klausulen, skal SQL-serveren gå igennem hele tabellen og kontrollere hver række for at se, om den matcher, hvilket kan være en langsom operation på store tabeller.

Indekset kan også være et UNIQUE indeks, hvilket betyder, at du ikke kan have dobbeltværdier i den pågældende kolonne, eller et PRIMARY KEY, som i nogle lagringsmotorer definerer, hvor i databasefilen værdien skal gemmes.

I MySQL kan du bruge EXPLAIN foran dit SELECT statement for at se, om din forespørgsel vil gøre brug af et indeks. Dette er en god start til fejlfinding af problemer med ydeevnen. Læs mere her: http://dev.mysql.com/doc/refman/5.0/en/explain.html

Kommentarer (0)

Et indeks bruges til at gøre forespørgsler hurtigere. Det gør det ved at reducere antallet af databasesider, der skal besøges/scannes.

I SQL Server bestemmer et clustered indeks den fysiske rækkefølge af data i en tabel. Der kan kun være ét clusteret indeks pr. tabel (clusteret indeks ER tabellen). Alle andre indekser på et bord betegnes som ikke-klyngeindeks.

Kommentarer (0)

Et index bruges af flere forskellige årsager. Hovedårsagen er at fremskynde forespørgsler, så du hurtigere kan hente rækker eller sortere rækker. En anden grund er at definere et primary-key- eller unikt indeks, som garanterer, at ingen andre kolonner har de samme værdier.

Kommentarer (0)