Maison  >  Article  >  base de données  >  Une brève introduction aux principes de conception d'index de MySQL et aux différences entre les index courants

Une brève introduction aux principes de conception d'index de MySQL et aux différences entre les index courants

黄舟
黄舟original
2017-03-24 13:13:201672parcourir

L'éditeur ci-dessous vous présentera une brève discussion des principes de conception index de mysql et des différences entre les index courants. L'éditeur le trouve plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence pour tout le monde. Suivons l'éditeur pour y jeter un œil.

Définition de l'index : il s'agit d'une structure de base de données distincte stockée sur le disque, qui contient des pointeurs de référence vers tous les enregistrements de la table de données.

Principes de conception des index de bases de données :

Afin de rendre l'utilisation des index plus efficace, lors de la création d'un index, vous devez considérer sur quels champs créer l'index et sur quel type créer un indice.
Alors, quels sont les principes de conception des indices ?

1. Sélectionnez l'index unique

La valeur de l'index unique est unique et un certain enregistrement peut être déterminé plus rapidement grâce à l'index.
Par exemple, le numéro du collège dans la table des élèves est un champ unique. L'établissement d'un index unique pour ce domaine permet de déterminer rapidement les informations d'un étudiant.
Si des noms sont utilisés, il peut y avoir le même nom, ce qui ralentira la vitesse de requête.

2. Créez des index pour les champs qui nécessitent souvent des opérations de tri, de regroupement et d'union

champs qui nécessitent souvent des opérations telles que ORDER BY, GROUP BY, DISTINCT et UNION, le tri l'opération fera beaucoup de temps perdu.
Si vous l'indexez, vous pouvez effectivement éviter l'opération de tri.

3. Créez des index pour les champs qui sont souvent utilisés comme conditions de requête

Si un champ est souvent utilisé comme condition de requête, la vitesse de requête de ce champ affectera la vitesse de requête de la table entière. Par conséquent,
indexer un tel champ peut améliorer la vitesse de requête de la table entière.

4. Limitez le nombre d'index

Plus il y a d'index, mieux c'est. Chaque index nécessite de l'espace disque. Plus il y a d'index, plus il faut d'espace disque.
Lors de la modification de la table, il est difficile de reconstruire et de mettre à jour l'index. Plus il y a d’index, plus la mise à jour de la table prend du temps.

5. Essayez d'utiliser un index avec une petite quantité de données

Si la valeur de l'index est très longue, la vitesse de requête sera affectée. Par exemple, la récupération de texte intégral
pour un champ de type CHAR (100) prendra certainement plus de temps que pour un champ de type CHAR (10).

6. Essayez d'utiliser des préfixes pour indexer

Si la valeur du champ d'index est très longue, il est préférable d'utiliser le préfixe de la valeur à indexer. Par exemple, la recherche en texte intégral des champs de type TEXTE et BLOG
sera une perte de temps. Si seuls les premiers caractères du champ sont récupérés, la vitesse de récupération peut être améliorée.

7. Supprimer les index qui ne sont plus utilisés ou rarement utilisés

Une fois les données du tableau fortement mises à jour ou la façon dont les données sont utilisées est modifiée, certains des index d'origine peuvent ne plus être nécessaire. Les administrateurs de bases de données doivent régulièrement rechercher ces index et les supprimer pour réduire l'impact des index sur les opérations de mise à jour.

8. Les petites tables ne doivent pas être indexées ; lorsqu'elles contiennent un grand nombre de colonnes et n'ont pas besoin de rechercher des valeurs non nulles, vous pouvez envisager de ne pas construire d'index

- --------- ---------------------------------------------

index mysqlConseils associés :

Champs souvent utilisés pour filtrer les enregistrements .

1. Champ de clé primaire, le système crée automatiquement l'index de la clé primaire

2. Champ de clé unique, le système crée automatiquement l'index correspondant ; .contrainte de clé étrangère Champs définis comme clés étrangères;

4 Champs utilisés pour connecter les tables dans les requêtes;

5. >

2. Les index occuperont de l'espace disque et la création d'index inutiles ne fera que provoquer du gaspillage.

3. La création d'index doit tenir compte de la manière dont les données sont exploitées.

1. Le contenu change rarement et est souvent interrogé, donc peu importe si vous créez quelques index supplémentaires pour celui-ci

2. fréquemment et régulièrement Par exemple, vous devez créer soigneusement les index nécessaires ;

4. La différence entre la clé primaire et la clé unique

1. . En tant que principal Le domaine/groupe de domaines de Key ne peut pas être nul. Et la clé unique le peut.

2. Il ne peut y avoir qu'une seule clé primaire dans une table, et plusieurs clés uniques peuvent exister en même temps.

La plus grande différence réside dans la conception logique. La clé primaire est généralement utilisée comme identifiant d'enregistrement dans la conception logique, ce qui est également l'intention initiale de la définition de la
Clé primaire, tandis que la clé unique sert uniquement à garantir l'unicité de la clé primaire. domaine/groupe de domaines.

5. Index composite et index unique

L'index composé fait référence à un index conjoint à plusieurs champs. Ces champs sont souvent combinés lors de l'interrogation d'une requête. les conditions à nouveau

L'index unique est principalement indexé par l'ID de clé primaire, et la séquence de la structure de stockage est cohérente avec la structure physique

Par exemple : créer un index idx sur tbl(a,b )

Triez d'abord par a, et a par b. Ainsi, lorsque vous cochez a ou ab,

peut utiliser cet index. Mais lorsque vous cochez uniquement b, l'index ne vous aidera pas beaucoup. .Il est peut-être possible de passer à la recherche.

--------------------------------- -------- -------

Ajouter et supprimer des index :

1. La clé primaire de la table, les clés étrangères doivent avoir des index ;

2. Les tables dont le volume de données dépasse 300w doivent avoir des index

3. sont souvent connectés à d'autres tables doivent être connectés avant que les index ne soient établis sur les champs

4. Les champs qui apparaissent souvent dans la Clause Where, en particulier les champs des grandes tables, doivent être indexés ; ;

5. Index Il doit être construit sur des champs avec une sélectivité élevée

6. Pour les champs de texte volumineux ou même des champs très longs, ne créez pas d'index. ;

7. Index composite L'établissement nécessite une analyse minutieuse ; essayez plutôt d'utiliser un index à champ unique :

Sélectionnez correctement le champ de la colonne principale dans l'index composite, qui est généralement. un champ avec une meilleure sélectivité

B. Est-ce que plusieurs champs d'un index composite apparaissent souvent dans la clause Where de manière AND en même temps ? Y a-t-il peu ou pas de requêtes à champ unique ? Si tel est le cas, vous pouvez créer un index composite ; sinon, envisagez un index à champ unique

C. Si les champs inclus dans l'index composite apparaissent souvent seuls dans la clause Where, décomposez-le en plusieurs champs uniques ; index ;

D. Si l'index composé contient plus de 3 champs, réfléchissez attentivement à la nécessité et envisagez de réduire le nombre de champs composés

E. ces index composites sur les champs peuvent généralement être supprimés ;

8. Ne créez pas trop d'index pour les tables qui effectuent fréquemment des opérations de données

9. impact négatif ;

Ce qui précède sont quelques jugements courants lors de l'établissement d'index. En un mot, l'établissement d'index doit être prudent, et la nécessité de chaque index doit être soigneusement analysée et il doit y avoir une base pour l'établissement. Parce qu'un trop grand nombre d'index et des index insuffisants ou incorrects ne sont pas bénéfiques pour les performances : chaque index créé sur la table augmentera la surcharge de stockage, et l'index augmentera également la surcharge de traitement pour les opérations d'insertion, de suppression et de mise à jour. De plus, trop d'index composés, lorsqu'il y a des index à champ unique, n'ont généralement aucune valeur ; au contraire, ils réduiront également les performances lors de l'ajout et de la suppression de données, en particulier pour les tables fréquemment mises à jour, l'impact négatif est même plus grand Gros

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