Ligesom et indeks i en bog , giver mulighed for en MySQL -indeks for dig at finde data mere effektivt. Indekset indeholder kun de felter, du er interesseret i at sortere på , i stedet for hele rekord. Alle datatyper kan være indekser , og der kan være op til 16 indekser pr bord. Indekser kan oprettes på et præfiks af kolonnen ( de første få tegn i hver post ) , hele kolonnen eller mere end én kolonne. Du kan endda oprette en fuldtekst indeks. CREATE INDEX Syntaks
Indexes oprettes normalt , når en tabel oprettes med CREATE TABLE : Hej
CREATE TABLE eksempel ( empid INT (10) , fname VARCHAR (20) , lname VARCHAR (20) , INDEX ( empid )),
Men du kan oprette indekser på bordene efter tabellerne er skabt med denne erklæring : Hej
CREATE INDEX MedarbejderId ON eksempel ( empid ) < br >
typer indeks
præfiks indekser er skabt ved hjælp af kun den førende del ( prefix) af kolonnen værdi. For eksempel, hvis du har indekseret på et efternavn kan du oprette et indeks kun på de første fem bogstaver i navnet. Kolonner , der bruger de " char " , " VARCHAR ", " binary ", " varbinary ", " blob " og " tekst " datatyper kan alle blive indekseret med præfikser . Størrelsen af præfikset er givet i tegn for string datatyper og bytes for binære datatyper. Størrelsen er indikeret direkte efter kolonnen navn i CREATE TABLE og CREATE INDEX udsagn. For eksempel: .
CREATE INDEX last_name ON eksempel ( fname (5 )),
(5 ) udpegning er længden af præfikset i tegn
Column præfikser gør indekset filen mindre , hvilket sparer diskplads og kan muligvis fremskynde "Indsæt" udsagn , da disse udsagn skal opdatere indekset samt tabellen.
et entydigt indeks skaber et indeks, hvor alle værdier i indekset er adskilt fra hinanden . Hvis du tilføjer en ny indeksværdi , der matcher en eksisterende værdi , opstår der en fejl . Den eneste undtagelse til denne regel er NULL værdi. Der kan være flere NULL værdier i et unikt indeks. Præfiks indekser kan også være unik. Den syntaks til at skabe en unik indeks er : Hej
CREATE UNIQUE INDEX last_name ON eksempel ( fname (5 )),
Full Text indekserer er skabt over hele kolonnen. Præfikser er ikke tilladt for fuldtekst indekser. Kolonnen skal være oprettet med char, varchar og tekst datatyper. Syntaksen for at skabe en fuldtekst indeks er : Hej
CREATE fuldtekstindeks beskrivelse ON eksempel ( beskrivelser ),
Brug Indexes
uden indekser vil MySQL starter i første post i en tabel , og læse hele tabellen for at finde alle relevante optegnelser . Hvis tabellen har et indeks , kan MySQL finde placeringen af data i midten af datafilen
Indekser bruges, når en erklæring har en WHERE klausul , såsom: .
SELECT empid FROM eksempel, hvor lname = ' Smith «
p Hvis der er flere indekser til at vælge fra MySQL vil bruge indekset , der returnerer den mindste mængde af rækker. Dette eliminerer rækker fra overvejelse i løbet af en forespørgsel.
Deltag forespørgsler kan bruge indeks til hurtigt at finde rækker i flere tabeller. Men de er kun nyttig, hvis værdierne er de samme eller lignende datatyper . Salg
Indekser også bruges til at finde MIN ( ) eller MAX ( ) værdier inden et indeks søjle og til sortering eller gruppering en tabel .