Maison > base de données > tutoriel mysql > SQL_CALC_FOUND_ROWS vs SELECT COUNT(*) : lequel est le plus rapide pour la pagination ?

SQL_CALC_FOUND_ROWS vs SELECT COUNT(*) : lequel est le plus rapide pour la pagination ?

DDD
Libérer: 2024-12-31 10:35:14
original
868 Les gens l'ont consulté

SQL_CALC_FOUND_ROWS vs. SELECT COUNT(*): Which is Faster for Pagination?

Comparaison des performances : SQL_CALC_FOUND_ROWS vs. SELECT COUNT(*)

Lors de la recherche du nombre total d'enregistrements dans une requête tout en utilisant la pagination, deux des méthodes émergent : SQL_CALC_FOUND_ROWS et SELECT COUNT(*). La détermination de l'approche optimale dépend de divers facteurs.

Méthode 1 : SQL_CALC_FOUND_ROWS

Cette méthode utilise SQL_CALC_FOUND_ROWS dans la requête SELECT initiale et utilise ensuite FOUND_ROWS() pour récupérer le total. nombre de lignes. La syntaxe est la suivante :

SELECT SQL_CALC_FOUND_ROWS * FROM table WHERE id > 100 LIMIT 10;
SELECT FOUND_ROWS();
Copier après la connexion

Méthode 2 : SELECT COUNT(*)

Alternativement, une requête distincte compte les lignes à l'aide de SELECT COUNT(*), après avoir exécuté la requête d'origine. La syntaxe est la suivante :

SELECT * FROM table WHERE id > 100 LIMIT 10;
SELECT COUNT(*) FROM table WHERE id > 100;
Copier après la connexion

Évaluation des performances

Les performances de chaque méthode varient en fonction de facteurs tels que la disponibilité de l'index et la complexité des requêtes. Une analyse complète du MySQL Performance Blog suggère que :

  • SQL_CALC_FOUND_ROWS est généralement plus lent que l'exécution de deux requêtes, en particulier si les index ne sont pas optimisés ou si la requête est complexe.
  • L'écart de performance se creuse avec l'augmentation du nombre de rangées compte.
  • Cependant, pour les requêtes avec des expressions complexes ou des sous-requêtes, SQL_CALC_FOUND_ROWS peut surpasser SELECT COUNT(*) en raison de l'utilisation de l'index.

En fin de compte , l'approche idéale dépend du contexte spécifique et des exigences de l'application. Comme indiqué dans l'article du blog Performance : "Cela dépend de vos index et d'autres facteurs."

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal