MySQL Tutorial indicizzazione

April 12

Come un indice in un libro, un indice di MySQL consente di trovare i dati in modo più efficiente. L'indice contiene solo i campi che vi interessano l'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

Gli indici sono di solito creati quando viene creata una tabella con l'istruzione CREATE TABLE:

CREATE TABLE esempio (EmpID INT (10), fname VARCHAR (20), lname VARCHAR (20), INDEX (EmpID))
ANDARE

Tuttavia, è possibile creare indici su tabelle dopo che i tavoli sono creati con questa affermazione:

CREATE INDEX employeeid ON esempio (EmpID);

Tipi di indici

indici prefisso vengono creati utilizzando solo la principale parte (prefisso) del valore della colonna. Ad esempio, se si indicizzato su un cognome, è possibile creare un indice solo sui primi cinque caratteri del nome. Le colonne che utilizzano i tipi di dati "blob \" e \ "text \" "varbinary \" \ "char \", \ "varchar \", \ "\ binario", \, \ possono essere indicizzati con prefissi. La dimensione del prefisso è dato in caratteri per i tipi di dati di 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))
ANDARE

La (5) la designazione è la lunghezza del prefisso in caratteri.

prefissi di colonna rendono il file di indice più piccolo che consente di risparmiare spazio su disco e può eventualmente accelerare \ dichiarazioni "INSERT \", in quanto queste dichiarazioni devono aggiornare l'indice così come il tavolo.

Un indice unico 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))
ANDARE

indici di testo completo sono creati su tutta la colonna. I prefissi non sono ammessi per gli indici full-text. La colonna deve essere creato con i tipi char, varchar e dati di testo. La sintassi per la creazione di un indice completo è il seguente:

CREATE descrizione completa del testo INDEX ON esempio (descrip);

Uso degli indici

Senza indici, MySQL ha inizio dal primo record di una tabella, e leggere l'intero tavolo per trovare tutti i documenti pertinenti. Se la tabella ha un indice, MySQL può trovare la posizione dei dati nel mezzo del file di dati.

Gli indici vengono utilizzati quando un'istruzione ha una clausola WHERE, come ad esempio:

SELEZIONE EmpID FROM WHERE esempio lname = 'Smith'
ANDARE

Se ci sono più indici da scegliere MySQL utilizzerà l'indice che restituisce il minor numero di righe. Questo elimina le righe da considerazione durante una query.

Join query possono 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.

Gli indici sono utilizzati anche per trovare i valori MIN () o MAX () all'interno di una colonna di indice e per ordinare o raggruppare un tavolo.