Comment MySQL optimise ORDER BY
<<<
Comment MySQL optimise LIMIT Comment éviter les scans de tables,,,
>>>

7.2 Optimisation des commandes SELECT et autres requêtes
7 Optimisation de MySQL
 Manuel de Référence MySQL 4.1 : Version Française

Syntaxe de EXPLAIN (Obtenir des informations sur les SELECT )
Mesurer les performances d'une requête
Vitesse des requêtes SELECT
Comment MySQL optimise les clauses WHERE
Comment MySQL optimise la condition OR
Comment MySQL optimise IS NULL
Comment MySQL optimise DISTINCT
Comment MySQL optimise les clauses LEFT JOIN et RIGHT JOIN
Comment MySQL optimise ORDER BY
->Comment MySQL optimise LIMIT
Comment éviter les scans de tables,,,
Vitesse des requêtes INSERT
Vitesses des commandes UPDATE
Rapidité des requêtes DELETE
Autres conseils d'optimisation

7.2.10 Comment MySQL optimise LIMIT

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.

<< Comment MySQL optimise LIMIT >>
Comment MySQL optimise ORDER BY Optimisation des commandes SELECT et autres requêtes Comment éviter les scans de tables,,,