Latest web development tutorials

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
........