Maison  >  Article  >  base de données  >  Quels sont les types d'index dans MySQL

Quels sont les types d'index dans MySQL

清浅
清浅original
2019-03-30 11:22:0072774parcourir

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.

Quels sont les types d'index dans MySQL

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érations
SELECT * 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn