:: DEVELOPER ZONE
Dans certains cas, MySQL va gérer la requête différemment avec la clause
LIMIT #, si la clause HAVING n'est pas utilisée :
Si vous ne sélectionnez que quelques lignes avec LIMIT, MySQL
va utiliser les index dans certains cas, où il aurait préféré utiliser
un scan de table complet.
Si vous utilisez LIMIT # avec la clause ORDER BY, MySQL va arrêter
de trier dès qu'il a trouvé la première # au lieu de trier toute la
table.
Lorsque vous combinez LIMIT # avec DISTINCT, MySQL va s'arrêter
dès qu'il a trouvé # lignes distinctes.
Dans certains cas, la clause GROUP BY peut être appliquée en lisant les
clés dans l'ordre (ou en faisant un tri sur la clé), puis en calculant
un sommaire, jusqu'à ce que la clé soient modifiée. Dans ce cas,
LIMIT # ne va pas appliquer les éléments non nécessaires de la
clause GROUP BYs.
Aussitôt que MySQL a envoyé les premières # lignes au client, il
annule le reste de la requête (si vous n'utilisez pas la fonction SQL_CALC_FOUND_ROWS).
LIMIT 0 va toujours retourner rapidement un résultat vide. C'est
pratique pour vérifier une requête et lire les types de colonnes du résultat,
sans exécuter réellement la requête.
Lorsque le serveur utilise des tables temporaire pour résoudre les requêtes,
la clause LIMIT # est utilisée pour calculer l'espace nécessaire.
© 1995-2005 MySQL AB. All rights reserved.
