Index est une structure de données qui aide MySQL à obtenir des données efficacement.
Ce qui suit est un résumé des informations que j'ai compilées et mon propre résumé d'apprentissage.
1. Est-il vraiment nécessaire d'utiliser des index ?
Tous les problèmes de performances ne peuvent pas être résolus en créant un index ; il existe de nombreuses autres façons de résoudre les problèmes de performances
a).
b) Réglage des paramètres de la base de données et de la taille du tampon,
c) Réglage de la taille du pool de connexion à la base de données ou de la taille du pool de threads,
d).
f). Organisez les suppressions par lots la nuit pour éviter les verrouillages de table inutiles,
autres, etc.
2. La différence entre les types d'index MySQL normal, unique et texte intégral
1. un type
normal : représente un index normal
unique : représente un index unique qui n'autorise pas les doublons si les informations du champ sont garanties de ne pas être répétées, par exemple lorsque le numéro d'identification. est utilisé comme index, il peut être défini sur unique , spécial, la clé primaire Primary_key est non vide et unique par défaut
2. FULLTEXT est un index de texte intégral, utilisé pour récupérer des informations textuelles dans un article.
texte intégral : représente l'index de recherche en texte intégral. FULLTEXT fonctionne mieux lors de la recherche d’un long article. Utilisé pour un texte relativement court, s'il ne comporte qu'une ou deux lignes, un INDEX ordinaire peut également être utilisé.
En résumé, le type d'index est déterminé par les caractéristiques de contenu du champ indexé, et normal est généralement le plus courant.
Pour des informations détaillées, veuillez vous référer à : http://blog.sina.com.cn/s/blog_887d00920100wgf3.html
3.
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 quel type d'index créer.
Cette section présentera aux lecteurs quelques principes de conception d'index. Du bon truc !
1. Sélectionnez un index unique et monotone
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 peut déterminer rapidement les informations d'un certain étudiant. Si vous utilisez des noms, il se peut qu'il y ait le même nom, ce qui ralentira la vitesse de requête. La monotonie fait référence au nombre croissant ou décroissant, tel que l'ID, qui sera plus efficace (7.mysql-Efficiency of random primaire key in clustered index.note)
2. Créez des index pour les champs 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 feront perdre beaucoup de temps. 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, l’indexation de ces champs peut améliorer la vitesse de requête de la table entière.
4. Limiter le nombre d'index
Le nombre d'index n'est pas toujours meilleur. 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 la 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). C'est inévitable, voir solution 6.
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.
Bonne référence d'article en ligne : (index de préfixe MySQL et sélectivité de l'index) http://www.cnblogs.com/gomysql/p/3628926.html
7. Dans l'ordre, suivez l'attribut de correspondance de gauche
. L'ordre des conditions de sélection n'a pas d'importance. Le noyau SQL triera et optimisera, mais cela compte lors de l'établissement d'un index conjoint. 5.4 Structure de données mysql-index.note Conclusion finale
8. Supprimez les index qui ne sont plus utilisés ou rarement utilisés
Une fois que les données du tableau ont été fortement mises à jour ou que la façon dont les données sont utilisées a été modifiée, certains des index d'origine peuvent ne plus être nécessaires. Les administrateurs de bases de données doivent régulièrement retrouver ces index et les supprimer pour réduire l'impact des index sur les opérations de mise à jour
9. Plus il y a d'index, mieux c'est. Un maximum de 6
est certainement possible. l'efficacité de la sélection correspondante, mais réduit également l'efficacité de l'insertion et de la mise à jour, car l'index peut être reconstruit lors de l'insertion ou de la mise à jour,
donc la façon de construire l'index doit être soigneusement étudiée, en fonction du spécifique situation. Il est préférable de ne pas avoir plus de 6 index sur une table. S'il y en a trop, vous devez vous demander s'il est nécessaire de créer des index sur certaines colonnes qui ne sont pas couramment utilisées.
Dans le cas de 10.emun ou de champs avec uniquement des niveaux à un chiffre, il n'est pas nécessaire d'ajouter un index
Dans le cas extrême, avec 900 000 données, la source n'a que deux valeurs : 0 et 1. Pour utiliser l'index, il faut d'abord lire le fichier d'index, puis effectuer une recherche binaire pour trouver le pointeur du disque de données du correspondant données, puis relues en fonction du pointeur de lecture. Les données correspondantes sur le disque affectent 450 000 jeux de résultats. Dans ce cas, c’est plus rapide que l’analyse directe de la table complète.
11. L'index est efficace pour le groupe par
L'essence est aussi un processus de tri, et l'index l'aide à atteindre 6. stratégie d'optimisation mysql-index.note Le troisième élément
Je viens de regarder tellement de lignes sans m'en rendre compte, je ne m'en souviens vraiment pas de toutes en même temps, mais si vous réfléchissez attentivement à chacun des éléments ci-dessus, ils sont vraiment utiles dans les applications de production. Vous devez y prêter attention. Si vous pouvez prêter attention aux points ci-dessus lorsque vous rencontrez des problèmes, cela a vraiment du sens. Ainsi, le résumé est le suivant :
Remarque : Le but ultime de la sélection d'un index est de rendre la requête plus rapide. Les principes énoncés ci-dessus sont les lignes directrices les plus élémentaires, mais vous ne pouvez pas vous en tenir aux lignes directrices ci-dessus.
Les lecteurs devraient continuer à pratiquer dans leurs futures études et travaux. Analysez et jugez en fonction de la situation réelle de l'application, et sélectionnez la méthode d'indexation la plus appropriée.
Ce qui précède est le résumé de Mysql-index Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (m.sbmmt.com) !