MySQL indeksering Tutorial

Som en indeks i en bok, lar en MySQL index deg å finne data mer effektivt. Indeksen inneholder kun de feltene du er interessert i å sortere på, snarere enn hele posten. Alle datatyper kan være indekser, og det kan være opptil 16 indekser per bord. Indekser kan opprettes på et prefiks av kolonnen (de første bokstavene i hver post), hele kolonnen eller mer enn én kolonne. Du kan også lage en tekstindeks.

Opprett indeks Syntax

Indekser opprettes vanligvis når en tabell er opprettet med CREATE TABLE-setningen:

CREATE TABLE eksempel (empid INT (10), fname VARCHAR (20), lname VARCHAR (20), INDEX (empid))

Du kan imidlertid opprette indekser på tabellene etter tabellene er laget med denne uttalelsen:

CREATE INDEX AnsattID PÅ eksempel (empid);

Typer avskriftene

Prefiks indeksene er opprettet ved hjelp av bare hovedrollen (prefiks) av kolonneverdien. For eksempel, hvis du indeksert på et etternavn, kan du opprette en indeks bare på de fem første bokstavene i navnet. Kolonner som bruker \ "char \", \ "varchar \", \ "binære \", \ "VARBINARY \", \ "blob \" og \ "tekst \" datatyper kan alle bli indeksert med prefikser. Størrelsen på prefiks er gitt i figurene for strengdatatyper og byte for binære datatyper. Størrelsen er angitt direkte etter kolonnenavnet i CREATE TABLE og CREATE INDEX utsagn. For eksempel:

CREATE INDEX last_name PÅ eksempel (fname (5))

Den (5) betegnelse er lengden av prefikset i tegn.

Kolonneprefiksene gjøre indeksfilen mindre som sparer diskplass og kan muligens få fart \ "Sett inn \" utsagn, som disse uttalelsene må oppdatere indeksen samt bordet.

En unik indeks skaper en indeks hvor alle verdier i indeksen er forskjellige fra hverandre. Hvis du legger til en ny indeksverdi som tilsvarer en eksisterende verdi, vil det oppstå en feil. Det eneste unntaket fra denne regelen er NULL verdi. Det kan være flere NULL verdier i en unik indeks. Prefiks indekser kan også være unike. Syntaksen for å skape en unik indeks er:

Lag unike INDEX last_name PÅ eksempel (fname (5))

Fullstendig tekst indekser blir opprettet over hele kolonnen. Prefikser er ikke tillatt for fulltekstindekser. Kolonnen må opprettes med røye, VARCHAR og tekst datatyper. Syntaksen for å lage en tekstindeks er:

CREATE tekstindeks beskrivelse PÅ eksempel (descrip);

Bruke indekser

Uten indekser, vil MySQL starter på den første posten i en tabell, og leser gjennom hele tabellen for å finne alle relevante poster. Hvis tabellen har en indeks, kan MySQL finne posisjonen av dataene i midten av datafilen.

Indekser brukes når en uttalelse har en WHERE-ledd, for eksempel:

SELECT empid FRA eksempel der lname = 'Smith'

Hvis det er flere indekser for å velge mellom MySQL vil bruke indeksen som returnerer minst mulig rader. Dette eliminerer rader fra vurdering i et søk.

Bli med spørringer kan bruke indekser til raskt å finne rader i flere tabeller. Men de er bare nyttig hvis verdiene er av samme eller lignende datatyper.

Indeksene er også brukt til å finne de MIN () eller MAX () verdier innenfor en indeks kolonne og til å sortere eller gruppe en tabell.