Maison > Article > base de données > Quelles sont les techniques pour créer des index dans MySQL ?
Compétences de création d'index MySQL : 1. Créez un index pour la colonne de clé primaire ; 2. Créez un index pour les colonnes qui doivent souvent être triées, regroupées et jointes ; doivent souvent être utilisés comme conditions de requête ; 4. Essayez de sélectionner des colonnes avec une haute distinction comme index ; 5. Créez des index pour les colonnes qui ne participent pas aux calculs.
Cet article présentera certaines colonnes plus adaptées à la création d'index. Bien sûr, il existe également certaines situations auxquelles il faut prêter attention lors de la création d'index. .
Cours recommandés : Tutoriel MySQL
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, l'identifiant du collège dans la table des étudiants est un champ unique. L'établissement d'un index unique pour ce domaine permet de déterminer rapidement les informations d'un étudiant. Si vous utilisez des noms, il se peut qu'il y ait le même nom, ce qui ralentira la vitesse des requêtes.
2. Établissez des index pour les champs (colonnes) qui nécessitent souvent des opérations de tri, de regroupement et d'union
Pour les champs qui nécessitent souvent des opérations telles que ORDER BY, GROUP BY, DISTINCT et UNION, les opérations de tri gaspilleront un beaucoup de temps. Si vous l'indexez, vous pouvez effectivement éviter l'opération de tri.
3. Créez des index pour les champs (colonnes) qui sont souvent utilisés comme conditions de requête
Si un champ est souvent utilisé comme conditions 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, l’indexation de ces champs 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. Lorsque la table est modifiée, 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, une recherche en texte intégral pour un champ de type CHAR(100) prendra certainement plus de temps qu'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. Essayez de choisir des colonnes avec une haute distinction comme index
La formule de distinction est count(distinct col)/count(*), ce qui signifie que les champs sont Non répété Ratio, plus le ratio est grand, moins nous analysons d'enregistrements. La distinction d'une clé unique est 1, tandis que certains champs de statut et de sexe peuvent avoir une distinction de 0 face au Big Data. Alors quelqu'un peut demander, est-ce que c'est le cas. le ratio a-t-il une valeur empirique ? Différents scénarios d'utilisation rendent cette valeur difficile à déterminer. Généralement, nous exigeons que les champs qui doivent être joints soient supérieurs à 0,1, c'est-à-dire qu'une moyenne de 10 enregistrements seront analysés par analyse
8. La colonne d'index ne peut pas participer au calcul, et la colonne doit être conservée "Propre"
Par exemple, from_unixtime(create_time) = '2014-05-29' ne peut pas utiliser l'index. La raison est très. C'est simple. L'arbre b+ stocke toutes les valeurs de champ dans la table de données, mais lors de la récupération, vous devez appliquer des fonctions à tous les éléments à comparer, ce qui est évidemment trop coûteux. La déclaration doit donc être écrite sous la forme create_time = unix_timestamp('2014-05-29');
9. Développez l'index autant que possible, ne créez pas de nouvel index Par exemple, il y a déjà un index de a dans le tableau, maintenant vous voulez ajouter l'index de (a, b), il vous suffit alors de modifier l'index d'origine
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!