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 :
Principe le plus à gauche
Il est préférable ne pas créer d'index pour les tables avec une petite cardinalité
Essayez de choisir des colonnes avec une forte discrimination comme index
Essayez un index étendu, ne créez pas un nouvel indice.
Créez des index pour les champs qui sont souvent utilisés comme conditions de requête, tri, regroupement et opérations conjointes
Limitez le nombre d'index et ne créer des index aveuglément
Essayez d'utiliser des index avec une petite quantité de données et utilisez des préfixes pour l'indexation
Supprimez les index qui ne sont plus utilisés ou rarement utilisé
À propos de l'optimisation de l'index :
Évitez d'utiliser des calculs sur les colonnes d'index
Éviter d'utiliser not sur les colonnes d'index
Éviter d'utiliser is null et is not null sur les colonnes d'index
Suivez le principe le plus à gauche de l'index
Vous devriez essayer d'éviter d'utiliser l'opérateur != ou <> effectuer une analyse complète de la table
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
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
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!