Mysql
 sql >> Base de données >  >> RDS >> Mysql

optimisation des requêtes mysql select et fonctionnement de la limite dans mysql

L'indexation régulière ne peut pas être utilisée pour améliorer cette requête. Les index MySQL sont des arbres B, ce qui signifie qu'ils peuvent trouver très rapidement un préfixe de la colonne indexée. Mais puisque votre LIKE la requête a % au début, il n'y a pas de préfixe unique à rechercher. Ainsi, chaque ligne doit être scannée pour correspondre au modèle.

Cependant, MySQL prend également en charge la recherche en texte intégral. Cela crée un index de tous les mots de la colonne, et il peut trouver ces mots rapidement. Voir la documentation pour plus de détails.

Si vous utilisez LIMIT 10 , il arrête l'analyse dès qu'il trouve les 10 premières lignes qui satisfont aux conditions. Sauf si vous utilisez également ORDER BY -- puis il doit trouver toutes les lignes pour pouvoir les trier avant de sélectionner les 10 premières.