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();
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;
É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 :
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!