Gillar ett index i en bok , gör en MySQL index dig att hitta data mer effektivt . Indexet innehåller endast de fält som du är intresserad av att sortera den , snarare än hela posten . Alla datatyper kan vara index och det kan finnas upp till 16 index per tabell . Index kan skapas på ett prefix av kolonnen ( de första tecknen i varje post ) , hela kolumnen eller mer än en kolumn . Du kan även skapa ett fulltext index . CREATE INDEX Syntax
Index skapas vanligen när en tabell skapas med CREATE TABLE :
CREATE TABLE exempel ( EmpID INT ( 10 ) , fname VARCHAR ( 20 ) , lname VARCHAR ( 20 ) , INDEX ( EmpID ) ) ;
du kan dock skapa index på borden efter tabellerna skapas med detta uttalande :
CREATE INDEX EmployeeID pÅ exempel ( EmpID ) ;
typer av index
index
prefix skapas med endast den främre delen ( prefix ) i kolumnen värdet . Till exempel , om du indexeras på ett efternamn , kan du skapa ett index endast på de fem första bokstäverna i namnet . Kolumner som använder " char " , " varchar " , " binär " , " varbinary " , " klump " och "Text" datatyper kan alla indexeras med prefix . Storleken av prefixet ges i tecken för sträng datatyper och bytes för binära datatyper. Storleken anges direkt efter kolonnen namn i CREATE TABLE och CREATE INDEX uttalanden . Till exempel: .
CREATE INDEX last_name PÅ exempel ( fname ( 5 ) ) ;
( 5 ) beteckning är längden av prefix i tecken
Column prefix gör index filen mindre vilket sparar diskutrymme och kan möjligen påskynda "Insert" uttalanden , eftersom dessa uttalanden måste uppdatera indexet liksom bordet .
ett unikt index skapas ett index där alla värden i indexet är åtskilda från varandra . Om du lägger till ett nytt index värde som överensstämmer med ett befintligt värde , uppstår ett fel . Det enda undantaget från denna regel är värdet NULL . Det kan finnas flera NULL-värden i ett unikt index . Prefix index kan också vara unikt . Syntaxen för att skapa ett unikt index är :
CREATE UNIQUE INDEX last_name PÅ exempel ( fname ( 5 ) ) ;
fulltext index skapas över hela kolumnen . Prefix är inte tillåtna i fulltext index . Kolonnen måste skapas med röding , varchar och uppgifter texttyper . Syntaxen för att skapa en fullständig text index är :
skapa full beskrivning TEXT INDEX ON exempel ( beskrivning ) ,
Använda Indexes
utan index , kommer MySQL börjar vid den första posten i en tabell , och läser igenom hela tabellen för att hitta alla relevanta register . Om tabellen har ett index , kan MySQL hitta positionen av data i mitten av datafilen används när ett påstående har en WHERE , såsom
Indexes : .
SELECT EmpID fRÅN exempel där lname = ' Smith ' ,
p Om det finns flera index att välja mellan MySQL kommer att använda index som ger den minsta mängden rader . Detta eliminerar rader från behandling under en sökning .
Join-frågor kan använda index för att snabbt hitta rader i flera tabeller . De är dock bara användbar om värdena är av samma eller liknande datatyper .
Index används också för att hitta MIN ( ) eller MAX ( ) värden inom ett index kolumnen och sortera eller grupp bord . Addera