Maison >base de données >tutoriel mysql >`SQL_CALC_FOUND_ROWS vs. COUNT(*) : quelle méthode est la plus efficace pour la pagination ?`

`SQL_CALC_FOUND_ROWS vs. COUNT(*) : quelle méthode est la plus efficace pour la pagination ?`

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-14 07:30:11128parcourir

`SQL_CALC_FOUND_ROWS vs. COUNT(*): Which Method is More Efficient for Pagination?`

Performances SQL : SELECT SQL_CALC_FOUND_ROWS vs. SELECT COUNT(*)

Considérez un scénario dans lequel vous devez limiter le nombre de lignes renvoyées par une requête SQL à des fins de pagination. Pour déterminer le nombre total d'enregistrements, il existe deux méthodes principales :

Méthode 1 : SQL_CALC_FOUND_ROWS

SELECT SQL_CALC_FOUND_ROWS * FROM table WHERE id > 100 LIMIT 10;
SELECT FOUND_ROWS();  

Méthode 2 : SELECT COUNT(*)

SELECT * FROM table WHERE id > 100 LIMIT 10;
SELECT COUNT(*) FROM table WHERE id > 100;  

La question se pose : quelle méthode est la plus efficace ?

La meilleure méthode : cela dépend

Selon le MySQL Performance Blog, il n'y a pas de réponse définitive. Peter Zaitsev, l'auteur du blog, suggère que la méthode optimale dépend de la configuration de l'index et d'autres facteurs.

Consensus général

Cependant, de nombreux commentaires en réponse au un article de blog semble indiquer que SQL_CALC_FOUND_ROWS est généralement plus lent que l'exécution de deux requêtes. La pénalité de performances signalée peut être importante, potentiellement jusqu'à 10 fois plus lente.

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!

Déclaration:
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