Maison > Article > base de données > Quels sont les types d'index dans MySQL
Les types d'index dans MySQL sont : 1. Index ordinaire ; 2. Index unique ; 3. Index de clé primaire ; Un index normal est l’index le plus basique et n’a aucune restriction. Un index unique nécessite que la valeur de la colonne d'index soit unique, mais les valeurs nulles sont autorisées.
Les types d'index dans MySQL sont les suivants
Index ordinaire
Index unique
Index de clé primaire
Index combiné
Index de texte intégral
(tutoriel recommandé : tutoriel vidéo mysql)
1. Index ordinaire
est l'index le plus basique, il n'a aucune restriction. Il dispose des méthodes de création suivantes :
Créer un index directement
CREATE INDEX index_name ON table(column(length))
Ajouter un index en modifiant la structure de la table
ALTER TABLE table_name ADD INDEX index_name ON (column(length))
Créer un index lors de la création de la table
CREATE TABLE `table` ( `id` int(11) NOT NULL AUTO_INCREMENT , `title` char(255) CHARACTER NOT NULL , `content` text CHARACTER NULL , `time` int(10) NULL DEFAULT NULL , PRIMARY KEY (`id`), INDEX index_name (title(length)) )
Supprimer l'index
DROP INDEX index_name ON table
2 , L'index unique
est similaire à l'index ordinaire précédent, sauf que la valeur de la colonne d'index doit être unique, mais les valeurs nulles sont autorisées. Dans le cas d'un index composite, la combinaison des valeurs des colonnes doit être unique. Il dispose des méthodes de création suivantes :
Créer un index unique
CREATE UNIQUE INDEX indexName ON table(column(length))
Modifier la structure de la table
ALTER TABLE table_name ADD UNIQUE indexName ON (column(length))
Spécifiez directement
CREATE TABLE `table` ( `id` int(11) NOT NULL AUTO_INCREMENT , `title` char(255) CHARACTER NOT NULL , `content` text CHARACTER NULL , `time` int(10) NULL DEFAULT NULL , UNIQUE indexName (title(length)) );
lors de la création d'une table. 3. L'index de clé primaire
est un index unique spécial. Une table ne peut avoir qu'un seul index primaire. clé. Les valeurs NULL ne sont pas autorisées. Généralement, l'index de clé primaire est créé en même temps lors de la création de la table :
CREATE TABLE `table` ( `id` int(11) NOT NULL AUTO_INCREMENT , `title` char(255) NOT NULL , PRIMARY KEY (`id`) );
4. L'index combiné
fait référence à l'index créé sur plusieurs champs, qui est utilisé uniquement dans les conditions de requête. Le premier champ lors de la création d'un index sera utilisé. Lorsque vous utilisez des index combinés, suivez le jeu de préfixes le plus à gauche
ALTER TABLE `table` ADD INDEX name_city_age (name,city,age);
5. L'index de texte intégral
est principalement utilisé pour rechercher des mots-clés dans le texte, plutôt que de les comparer directement avec valeurs dans l'index. L'index de texte intégral est très différent des autres index. Il ressemble plus à un moteur de recherche qu'à une simple correspondance de paramètres de l'instruction Where. L'index de texte intégral est utilisé avec l'opération de correspondance, au lieu de l'instruction générale Where plus Like. Il peut être utilisé pour créer une table, modifier une table et créer un index, mais actuellement, seuls les index de texte intégral peuvent être créés sur les colonnes char, varchar et text. Il convient de mentionner que lorsque la quantité de données est importante, il est préférable de placer les données dans une table sans index global, puis d'utiliser CREATE index pour créer un index de texte intégral plutôt que de créer d'abord un texte intégral pour une table, puis d'écrire le texte intégral. des données dedans. La vitesse est beaucoup plus rapide.
Il convient d'ajouter un index de texte intégral lors de la création d'un tableau
CREATE TABLE `table` ( `id` int(11) NOT NULL AUTO_INCREMENT , `title` char(255) CHARACTER NOT NULL , `content` text CHARACTER NULL , `time` int(10) NULL DEFAULT NULL , PRIMARY KEY (`id`), FULLTEXT (content) );
Modifier la structure de la table pour ajouter un index de texte intégral
ALTER TABLE article ADD FULLTEXT index_content(content)
Créer un index directement
CREATE FULLTEXT INDEX index_content ON article(content)
Inconvénients
1 Bien que l'index s'améliore grandement. la vitesse de requête, cela réduira également la vitesse de mise à jour de la table, comme Effectuer une insertion, une mise à jour et une suppression sur la table. Car lors de la mise à jour de la table, non seulement les données doivent être enregistrées, mais également le fichier d'index.
2. La création de fichiers d'index occupera de l'espace disque. Généralement, ce problème n'est pas grave, mais si vous créez plusieurs index combinés sur une grande table, le fichier d'index grandira rapidement. Les index ne sont qu'un facteur qui améliore l'efficacité. Si vous disposez d'une table contenant une grande quantité de données, vous devez passer du temps à rechercher et à créer le meilleur index ou à optimiser les instructions de requête.
Remarques
Lors de l'utilisation d'index, il y a quelques conseils et précautions :
1 L'index ne contiendra pas de colonnes avec des valeurs nulles
.Tant qu'une colonne contient une valeur nulle, elle ne sera pas incluse dans l'index. Tant qu'une colonne de l'index composite contient une valeur nulle, alors cette colonne ne sera pas valide pour l'index composite. Par conséquent, lors de la conception de la base de données, nous ne devons pas laisser la valeur par défaut du champ être nulle.
2. Utilisez un index court
pour indexer la chaîne. Si possible, vous devez spécifier une longueur de préfixe. Par exemple, si vous avez une colonne de char(255), si la plupart des valeurs sont uniques dans les 10 ou 20 premiers caractères,
alors n'indexez pas la colonne entière. Les index courts améliorent non seulement la vitesse des requêtes, mais permettent également d'économiser de l'espace disque et des opérations d'E/S.
3. Tri des colonnes d'index
La requête n'utilise qu'un seul index, donc si l'index a été utilisé dans la clause Where, les colonnes classées par n'utiliseront pas l'index. Par conséquent, n'utilisez pas d'opérations de tri lorsque le tri par défaut de la base de données peut répondre aux exigences ; essayez de ne pas inclure le tri de plusieurs colonnes. Si nécessaire, il est préférable de créer des index composites pour ces colonnes.
4. Opération d'instruction similaire
Généralement, il n'est pas recommandé d'utiliser une opération similaire. S'il doit être utilisé, comment l'utiliser est également un problème. Comme « %aaa% » n'utilisera pas l'index mais comme « aaa% » utilisera l'index.
5. N'effectuez pas d'opérations sur les colonnes, ce qui entraînerait un échec de l'index et effectuerait une analyse complète de la table, telle que
6. opérationsSELECT * FROM table_name WHERE YEAR(column_name)<2017;
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!