Indice di MySQL
MySQL MySQL costruire gli indici per il funzionamento efficiente è molto importante, gli indici possono migliorare notevolmente la velocità di recupero di MySQL.
Ad esempio, se un disegno ragionevole e utilizzare l'indice MySQL è un Lamborghini, allora non c'è progettazione e uso dell'indice MySQL è un triciclo.
Indice punti indice separato e l'indice di combinazione. indice separato che contiene solo un singolo indice di colonna, una tabella può avere indice separare più, ma questo non è un indice composito. indice composito, cioè un cavo comprendente una pluralità di colonne.
Quando si crea un indice, è necessario assicurarsi che l'indice viene utilizzato in condizioni di query SQL (generalmente come condizione della clausola WHERE).
Infatti, l'indice è anche una tabella che contiene la chiave e indice campi primari e punti per registrare la tabella di entità.
Quanto sopra parlando dei vantaggi di utilizzare l'indice, ma l'uso eccessivo dell'indice si tradurrà in abusi. Pertanto, l'indice ha anche i suoi svantaggi: Mentre l'indice notevolmente aumentato la velocità di query, mentre si riduce la velocità di aggiornamento del tavolo, come il tavolo INSERT, UPDATE e DELETE. Poiché la tabella di aggiornamento, MySQL non è solo per salvare i dati, ma salva anche su file di indice.
L'indicizzazione occupa spazio su disco nel file di indice.
Indice generale
Crea indice
Questo è l'indice di base, non ha alcuna restrizione. Ha creato seguenti modi:
CREATE INDEX indexName ON mytable(username(length));
Se è CHAR, VARCHAR tipo, lunghezza può essere inferiore alla lunghezza effettiva del campo, se i tipi BLOB e testo, è necessario specificare la lunghezza.
Modificare Tabella Struttura
ALTER mytable ADD INDEX [indexName] ON (username(length))
Quando si crea una tabella di specificare direttamente
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, INDEX [indexName] (username(length)) );
Eliminare sintassi index
DROP INDEX [indexName] ON mytable;
indice univoco
È simile all'indice generale precedente, è diverso: il valore delle colonne di indice deve essere unico, ma consentono valore franco. Se è una combinazione dell'indice, il valore della colonna deve essere univoco. Ha creato seguenti modi:
Crea indice
CREATE UNIQUE INDEX indexName ON mytable(username(length))
Modificare Tabella Struttura
ALTER mytable ADD UNIQUE [indexName] ON (username(length))
Quando si crea una tabella di specificare direttamente
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, UNIQUE [indexName] (username(length)) );
Utilizzare il comando ALTER per aggiungere ed eliminare gli indici
Ci sono quattro modi per aggiungere tabella di dati di indice:
- ALTER TABLE nome_tabella ADD PRIMARY KEY (column_list ): Questa istruzione aggiunge una chiave primaria, il che significa che il valore dell'indice deve essere unica e non può essere NULL.
- ALTER TABLE nome_tabella ADD nome_indice UNIQUE (column_list ): Questa istruzione crea un valore di indice deve essere univoco (ad eccezione di NULL fuori, NULL può apparire più volte).
- ALTER TABLE nome_tabella ADD INDEX nome_indice (column_list ): aggiungere un indice normale, il valore dell'indice può verificarsi più volte.
- ALTER TABLE nome_tabella ADD FULLTEXT nome_indice (column_list ): Questa istruzione specifica l'indice è FULLTEXT, per l'indicizzazione full-text.
I seguenti esempi aggiungere un indice nella tabella.
mysql> ALTER TABLE testalter_tbl ADD INDEX (c);
È inoltre possibile utilizzare la clausola DROP per rimuovere l'indice nel comando ALTER. Provare i seguenti esempi per eliminare l'indice:
mysql> ALTER TABLE testalter_tbl DROP INDEX (c);
Utilizzare il comando ALTER per aggiungere e cancellare la chiave primaria
Solo agire su una colonna di chiave primaria, quando si aggiunge un indice chiave primaria, è necessario fare in modo che la chiave predefinita primaria non è vuoto (NOT NULL). Esempi sono i seguenti:
mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL; mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);
È inoltre possibile utilizzare il comando ALTER per eliminare la chiave primaria:
mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;
Basta specificare PRIMARY KEY Elimina il tempo specificato, ma quando si elimina l'indice, è necessario conoscere il nome dell'indice.
informazioni di indice di visualizzazione
È possibile utilizzare il comando SHOW INDEX per elencare le informazioni di indice tavolo. Con l'aggiunta di \ G per formattare l'output.
Provare i seguenti esempi:
mysql> SHOW INDEX FROM table_name\G ........