Latest web development tutorials

Index MySQL

MySQL MySQL construire des index pour un fonctionnement efficace est très important, les index peuvent grandement améliorer la vitesse de récupération de MySQL.

Par exemple, si une conception raisonnable et utiliser l'index MySQL est une Lamborghini, alors il n'y a pas de conception et l'utilisation de l'indice MySQL est un tricycle.

Index souligne index séparé et l'indice de combinaison. index séparé qui ne contient qu'un seul indice de colonne, une table peut avoir plusieurs index séparé, mais ce n'est pas un indice composite. indice composite, à savoir un câble comprenant une pluralité de colonnes.

Lorsque vous créez un index, vous devez vous assurer que l'indice est utilisé dans une des conditions de requête SQL (généralement comme condition de la clause WHERE).

En fait, l'indice est également une table qui contient les clés et index des champs primaires, et des points pour enregistrer la table de l'entité.

Le ci-dessus parlent des avantages de l'utilisation de l'indice, mais l'utilisation excessive de l'indice se traduira par des abus. Par conséquent, l'indice a aussi ses inconvénients: Alors que l'indice a augmenté considérablement la vitesse d'interrogation, alors qu'il permettra de réduire la vitesse de mise à jour de la table, tels que la table INSERT, UPDATE et DELETE. Parce que la table de mise à jour, MySQL est non seulement d'enregistrer les données, mais aussi d'économiser sur le fichier d'index.

L'indexation prend de l'espace disque dans le fichier d'index.


Index général

Créer un index

Ceci est l'indice de base, il ne possède pas de restrictions. Il a créé de la manière suivante:

CREATE INDEX indexName ON mytable(username(length)); 

Si elle est CHAR, le type VARCHAR, la longueur peut être inférieure à la longueur réelle du champ, si les types BLOB et TEXT, vous devez spécifier la longueur.

Modifier la structure du tableau

ALTER mytable ADD INDEX [indexName] ON (username(length)) 

Lorsque vous créez une table directement spécifier

CREATE TABLE mytable(  
 
ID INT NOT NULL,   
 
username VARCHAR(16) NOT NULL,  
 
INDEX [indexName] (username(length))  
 
);  

Supprimer la syntaxe d'index

DROP INDEX [indexName] ON mytable; 

Index unique

Il est similaire à l'indice général précédent, il est différent: la valeur des colonnes d'index doit être unique, mais permettre que la valeur libre. Si elle est une combinaison de l'indice, la valeur de la colonne doit être unique. Il a créé de la manière suivante:

Créer un index

CREATE UNIQUE INDEX indexName ON mytable(username(length)) 

Modifier la structure du tableau

ALTER mytable ADD UNIQUE [indexName] ON (username(length)) 

Lorsque vous créez une table directement spécifier

CREATE TABLE mytable(  
 
ID INT NOT NULL,   
 
username VARCHAR(16) NOT NULL,  
 
UNIQUE [indexName] (username(length))  
 
);  

Utilisez la commande ALTER pour ajouter et supprimer des index

Il y a quatre façons d'ajouter la table de données d'index:

  • ALTER TABLE tbl_name ADD PRIMARY KEY (column_list ): Cette déclaration ajoute une clé primaire, ce qui signifie que la valeur d'index doit être unique et ne peut pas être NULL.

  • ALTER TABLE tbl_name ADD index_name UNIQUE (column_list ): Cette instruction crée une valeur d'index doit être unique (sauf NULL extérieur, NULL peut apparaître plusieurs fois).
  • ALTER TABLE tbl_name ADD INDEX nom_index (column_list ): ajouter un index normal, la valeur d'index peut se produire plusieurs fois.
  • ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list ): Cette déclaration spécifie l'index est FULLTEXT, pour l' indexation en texte intégral.

Les exemples suivants ajoutent un index dans la table.

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

Vous pouvez également utiliser la clause DROP pour supprimer l'index dans la commande ALTER. Essayez les exemples suivants pour supprimer l'index:

mysql> ALTER TABLE testalter_tbl DROP INDEX (c);

Utilisez la commande ALTER pour ajouter et supprimer la clé primaire

Seulement agir sur une colonne de clé primaire, lorsque vous ajoutez un index de clé primaire, vous devez vous assurer que la clé primaire par défaut est pas vide (NOT NULL). Des exemples sont les suivants:

mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL;
mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);

Vous pouvez également utiliser la commande ALTER pour supprimer la clé primaire:

mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;

Il suffit de spécifier KEY PRIMAIRE Supprimer le temps spécifié, mais lorsque vous supprimez l'index, vous devez connaître le nom de l'index.


informations d'index d'affichage

Vous pouvez utiliser la commande SHOW INDEX à la liste des informations d'index de table. En ajoutant \ G pour formater la sortie.

Essayez les exemples suivants:

mysql> SHOW INDEX FROM table_name\G
........