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
BY
s.
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.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.