Maison > base de données > tutoriel mysql > Points de connaissances sur l'indexation

Points de connaissances sur l'indexation

时间把记忆冲淡
Libérer: 2020-05-10 16:15:49
original
197 Les gens l'ont consulté

Qu'est-ce qu'un indice ?

L'index est une structure de données qui permet au moteur de stockage de trouver rapidement des enregistrements. On peut également dire qu'il s'agit d'un répertoire de données. Le fichier d'index est enregistré au format B-Tree

Quel est le rôle de l'index ?

1. Les index peuvent accélérer la récupération des données, ainsi que le regroupement et le tri des données
2. Les index peuvent garantir l'unicité des données
3. rapidité

Inconvénients de l'indexation ?

1. La création et la maintenance des index prennent du temps, et augmentent avec l'augmentation de la taille de l'index
2 La création d'index consomme de l'espace physique
3. augmente Lors de la suppression et de la modification, l'index doit également être maintenu dynamiquement

Pourquoi la vitesse des requêtes peut-elle être améliorée ?

Principalement parce que l'efficacité de la recherche séquentielle est inférieure à celle de la recherche structurelle B+tree (cela doit être compris en détail)

Type d'index ?

1. Index de clé primaire
clé Primark Il s'agit d'un index unique spécial qui n'autorise pas les valeurs nulles. Généralement, l'index de clé primaire est créé en même temps lors de la création de la table. Remarque : Une table ne peut avoir qu’une seule clé primaire.
2. Index unique
Le mot-clé unique pour le paramètre d'index unique La valeur de la colonne d'index unique 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.
3. Indice ordinaire
C'est l'index le plus basique, il n'a aucune restriction.
4. L'index composite
signifie qu'un index contient plusieurs colonnes, principalement utilisé pour éviter les requêtes de retour de table
5. Index en texte intégral

1. Ajouter une CLÉ PRIMAIRE (primaire. index clé)

ALTER TABLE `table_name` ADD PRIMARY KEY (`column`) ;

2. Ajouter UNIQUE (index unique)

ALTER TABLE ` table_name` ADD UNIQUE (`column`);

3. -- 3. Ajouter INDEX (index normal)

ALTER TABLE `table_name` ADD INDEX index_name (`column`);

4. -- 4. Ajoutez FULLTEXT (index de texte intégral)

ALTER TABLE `table_name` ADD FULLTEXT (`column`);

5. index multi-colonnes

ALTER TABLE `table_name` ADD INDEX index_name (`column1`, `column2`, `column3`);

L'index ne peut pas être modifié une fois créé . Si vous souhaitez modifier l'index, vous pouvez uniquement le supprimer et le reconstruire. Vous pouvez utiliser DROP INDEX index_name ON table_name; pour supprimer un index.

Points clés

Pourquoi avons-nous besoin d'un index combiné sur la base d'un index à une seule colonne ?

Parce que mysql n'utilisera qu'un des index les plus efficaces sans créer d'index combiné, et que l'efficacité est médiocre

Quel est le principe le plus à gauche de l'index combiné ?

L'index combiné nom d'utilisateur, ville, âge équivaut en fait à l'établissement des trois ensembles d'index combinés suivants respectivement:
1.usernname,city,age; 2.usernname,city 3.usernname
Pourquoi n'y a-t-il pas d'index combiné comme city, age ? Ceci est le résultat du « préfixe le plus à gauche » de l'index composite MySQL. La compréhension simple est de commencer la combinaison uniquement à partir de celle la plus à gauche. Non seulement les requêtes contenant ces trois colonnes utiliseront cet index combiné, mais le SQL suivant utilisera cet index combiné :

SELECT * FROM mytable WHREE username="admin" AND city="Zhengzhou "SELECT * FROM mytable WHREE username="admin" AND city="Zhengzhou "SELECT * FROM mytable WHREE username ="admin"

Les éléments suivants ne seront pas utilisés :

SELECT * FROM mytable WHREE age=20 AND city="Zhengzhou"SELECT * FROM mytable WHREE city="Zhengzhou"

Principes de création d'index :

  1. Principe le plus à gauche

  2. Il est préférable ne pas créer d'index pour les tables avec une petite cardinalité

  3. Essayez de choisir des colonnes avec une forte discrimination comme index

  4. Essayez un index étendu, ne créez pas un nouvel indice.

  5. Créez des index pour les champs qui sont souvent utilisés comme conditions de requête, tri, regroupement et opérations conjointes

  6. Limitez le nombre d'index et ne créer des index aveuglément

  7. Essayez d'utiliser des index avec une petite quantité de données et utilisez des préfixes pour l'indexation

  8. Supprimez les index qui ne sont plus utilisés ou rarement utilisé

À propos de l'optimisation de l'index :

  1. Évitez d'utiliser des calculs sur les colonnes d'index

  2. Éviter d'utiliser not sur les colonnes d'index

  3. Éviter d'utiliser is null et is not null sur les colonnes d'index

  4. Suivez le principe le plus à gauche de l'index

  5. Vous devriez essayer d'éviter d'utiliser l'opérateur != ou <> effectuer une analyse complète de la table

  6. Les requêtes floues ne peuvent pas être précédées d'un signe de pourcentage, sinon cela entraînera une analyse complète de la table

  7. En utilisant ou dans la clause Where pour connecter les conditions, le moteur abandonnera l'utilisation de l'index Lors de l'exécution d'une analyse complète de la table

  8. Si le type de colonne est une chaîne, les données doivent être entre guillemets , sinon l'index ne sera pas utilisé

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!

Étiquettes associées:
1
source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal