Contexte : un ami du groupe a dit que le fait que in puisse être indexé ou non est lié au nombre de chaînes dans in. Une fois la longueur de la chaîne dépassée, l'index ne sera plus utilisé.
En fait, cette perception est fausse. Tout le monde a été trompé par de nombreux articles republiés ! ! !
Ce qui affecte réellement si in est indexé dépend de la proportion de données qualifiées dans in, ce qui affecte si mysql est indexé !
Mon test précédent a montré que plus de 40 % des données correspondaient (ce seuil n'est pas nécessairement de 40 %, mais mon test précédent était d'environ 40 % et l'index ne serait pas utilisé. Ceci est également affecté par la version mysql) . Après cela, j'ai commencé à utiliser la table entière, sans indexation
Pratique :
Figure 1 :
Figure 2 :
Figure 3 :
Image 4 :
Figure 5 :
Comme le montre la figure ci-dessus, lorsque l'impact du retour de table et de l'écrasement de l'index n'est pas pris en compte, lorsque les données correspondantes dans in occupent un grande quantité de données entières de la table, une analyse complète de la table sera lancée. Aucune indexation.
De plus, des instructions spéciales
1. Lorsque in a une seule valeur, mysql optimisera automatiquement en =, donc l'index sera toujours utilisé
2 Lorsque les colonnes de in et select sont les mêmes, là. n'est pas nécessaire d'y aller Lors du retour de la table, l'index de couverture sera utilisé
Apprentissage recommandé : "Tutoriel vidéo MySQL"
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!