Come un indice in un libro , di un indice di MySQL consente di trovare i dati in modo più efficiente . L'indice contiene solo i campi che sono interessati ad ordinamento su , piuttosto che l'intero record . Tutti i tipi di dati possono essere indici e non ci possono essere fino a 16 indici per tabella . Gli indici possono essere creati su un prefisso della colonna ( i primi caratteri di ciascun record ) , l'intera colonna o più colonne . È anche possibile creare un indice completo . Crea indice Sintassi
indici vengono creati quando una tabella viene creata con l'istruzione CREATE TABLE :
CREATE TABLE esempio ( empid INT ( 10) , fname VARCHAR ( 20 ) , lname VARCHAR ( 20 ) , INDEX ( empid ) ) ;
Tuttavia , è possibile creare indici su tabelle dopo le tabelle vengono create con questa dichiarazione :
cREATE INDEX EmployeeId ON esempio ( empid ) ;
tipi di indici
indici prefisso
sono creati utilizzando solo la parte iniziale ( prefisso) del valore della colonna . Ad esempio, se è indicizzato su un cognome , è possibile creare un indice solo sui primi cinque caratteri del nome . Le colonne che utilizzano il " carattere " , " varchar " , "binary " , " varbinary " , " blob " e tipi di dati "testo" possono essere indicizzati con prefissi . La dimensione del prefisso viene data in caratteri per i tipi di dati stringa e byte per i tipi di dati binari. La dimensione è indicato subito dopo il nome della colonna in CREATE TABLE e CREATE INDEX . Per esempio : .
CREATE INDEX cognome ON esempio ( fname ( 5) ) ;
(5 ) la designazione è la lunghezza del prefisso in caratteri
prefissi di colonna fanno il file di indice più piccolo che consente di risparmiare spazio su disco e può eventualmente accelerare dichiarazioni "Inserisci", in quanto queste dichiarazioni devono aggiornare l'indice , così come il tavolo .
un indice UNIQUE crea un indice in cui tutti i valori dell'indice sono distinti l'uno dall'altro . Se si aggiunge un nuovo valore di indice che corrisponde a un valore esistente , si verificherà un errore . L'unica eccezione a questa regola è il valore NULL . Ci possono essere più valori NULL in un indice univoco . Indici prefisso può anche essere unico. La sintassi per creare un indice univoco è :
CREATE UNIQUE INDEX ON cognome esempio ( fname ( 5) ) ;
indici full-text vengono creati su tutta la colonna. I prefissi non sono ammessi per gli indici full-text . La colonna deve essere creato con il tipo char, varchar e tipi di dati di testo . La sintassi per la creazione di un indice testo completo è :
CREATE TESTO descrizione INDEX ON esempio ( descrizione ) ;
Uso degli indici
senza indici , MySQL avrà inizio dal primo record di una tabella , e leggere l'intera tabella per trovare tutti i dati pertinenti . Se la tabella ha un indice , MySQL può trovare la posizione dei dati nel mezzo del file di dati
indici sono usati quando la dichiarazione ha una clausola WHERE , come ad esempio : .
SELEZIONA EmpID FROM esempio WHERE lname = 'Smith ';
Se ci sono più indici tra cui scegliere MySQL utilizzerà l'indice che restituisce il minor numero di righe . Questo elimina le righe da considerare durante una query .
Query join può utilizzare gli indici per trovare rapidamente le righe in più tabelle . Tuttavia, essi sono utili solo se i valori sono gli stessi o simili tipi di dati .
Indici sono utilizzati anche per trovare il MIN ( ) o MAX ( ) i valori all'interno di una colonna di indice e di specie o di un gruppo di una tabella .