Lorsque j'ajoute LIMIT 1 à une requête MySQL, arrête-t-il la recherche après avoir trouvé 1 résultat (ce qui le rend plus rapide) ou va-t-il tout de même extraire tous les résultats et les tronquer à la fin?
Réponses
Trop de publicités?Selon la requête, l'ajout d'une clause limit peut avoir un impact énorme sur les performances. Si vous souhaitez une seule ligne (ou sais pour un fait qu'une seule ligne peut satisfaire à la requête), et ne sont pas sûr de savoir comment l'interne de l'optimiseur va l'exécuter (par exemple, clause where ne pas frapper un index et ainsi de suite), alors vous devriez certainement ajouter une clause LIMIT.
Comme pour les requêtes optimisées (à l'aide des index sur des petites tables) il ne sera probablement pas beaucoup d'importance dans la performance, mais encore une fois - si vous êtes uniquement intéressé par une ligne que d'ajouter une clause LIMIT, peu importe.
Limite peut affecter les performances de la requête (voir les commentaires et le lien ci-dessous) et il réduit également le résultat qui est sortie par MySQL. Pour une requête dans laquelle vous vous attendez à un résultat unique il y a des avantages.
En outre, limiter le nombre de résultats peut, en réalité, la vitesse du total des requêtes temps de transfert de gros ensembles de résultats de l'utilisation de la mémoire et potentiellement créer des tables temporaires sur le disque. Je mentionne ce que j'ai vu récemment une application qui n'utilise pas de limite de tuer un serveur en raison d'énormes ensembles de résultats et avec limite en place l'utilisation des ressources a chuté considérablement.
Consultez cette page pour plus de détails: Documentation de MySQL: LIMITE d'Optimisation