Som en indeks i en bok , gjør at en MySQL -indeksen for deg å finne data mer effektivt. Indeksen inneholder bare de feltene du er interessert i å sortere på , snarere enn hele posten . Alle datatyper kan være indekser , og det kan være opp til 16 indekser per bord . Indekser kan opprettes på et prefiks i kolonnen ( de første bokstavene i hver post ) , hele kolonnen eller mer enn én kolonne . Du kan også lage en full tekst indeks. CREATE INDEX Syntax
Indexes opprettes vanligvis når en tabell er opprettet med CREATE TABLE-setningen : en
CREATE TABLE eksempel ( EmpID INT ( 10 ) , fname VARCHAR ( 20 ) , lname VARCHAR ( 20 ) , INDEX ( EmpID ));
du kan imidlertid opprette indekser på tabeller etter tabellene er opprettet med dette utsagnet : en
CREATE INDEX EmployeeID pÅ eksempel ( EmpID ) ;
typer indekser
Forstavelsestegn indeksene er opprettet ved hjelp av bare den ledende del ( prefiks ) i kolonnen verdi. For eksempel, hvis du har indeksert på et etternavn , kan du opprette en indeks bare på de fem første bokstavene i navnet . Kolonner som bruker " tegn " , " varchar ", " binary ", " varbinary ", " blob " og " tekst " datatyper kan alle bli indeksert med prefikser . Størrelsen av prefikset er gitt i figurene for streng datatyper og bytes for binære datatyper. Størrelsen er angitt direkte etter kolonne navn i CREATE TABLE og CREATE INDEX uttalelser. For eksempel: .
CREATE INDEX last_name PÅ eksempel ( fname ( 5 ));
( 5 ) betegnelse er lengden av prefikset i tegn
kolonneprefiksene gjøre indeksen filen mindre som sparer diskplass og kan muligens øke hastigheten på "Insert" utsagn , som disse uttalelsene må oppdatere indeksen samt tabellen .
en unik indeks skaper en indeks der alle verdier i indeksen er adskilt fra hverandre . Hvis du legger til en ny indeks som matcher et 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 unik. Syntaksen for å skape en unik indeks er : en
CREATE UNIQUE INDEX last_name PÅ eksempel ( fname ( 5 ));
Full Text indekser er skapt over hele kolonnen . Prefikser er ikke tillatt for tekst indekser. Kolonnen må være opprettet med røye, VARCHAR og tekst datatyper. Syntaksen for å lage en full tekst indeksen er : en
CREATE FULL TEKST INDEX beskrivelse PÅ eksempel ( beskrivelse ) ;
hjelp Indexes
uten indekser , vil MySQL starte 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 til dataene i midten av datafilen
Indekser brukes når en uttalelse har en WHERE klausulen, for eksempel: .
SELECT EmpID fRA eksempel WHERE lname = ' Smith ';
p Hvis det er flere indekser for å velge mellom MySQL vil bruke indeksen som returnerer minst mulig rader . Dette eliminerer rader fra vurdering i en spørring .
Delta spørringer kan bruke indekser for å raskt finne rader i flere tabeller . Men de er bare nyttig hvis verdiene er av samme eller lignende datatyper .
Indekser er også brukt til å finne MIN ( ) eller MAX ( ) verdier innenfor en indeks kolonne og å sortere eller gruppere en tabell .