10.7 Comment MySQL optimise les LIMIT

Dans certains cas, MySQL va traiter la requête de manière très différente suivant que vous utilisez LIMIT # et non pas HAVING:

  • Si vous ne faites que selectionner que quelques lignes avec LIMIT, MySQL utilisera des index, alors qu'il préfère généralement une recherche exhaustive dans la table.
  • Si vous utiliser LIMIT # avec ORDER BY, MySQL arrêtera le tri dès qu'il a trouver un nombre suffisant de colonnes, et non pas après avoir scanné la table complète.
  • Lors de la combinaison de LIMIT # et DISTINCT, MySQL s'arrête dès qu'il a trouvé # lignes uniques.
  • Dès que MySQL a envoyé les premières # au client, il termine la requête.