Maison >base de données >tutoriel mysql >Pagination SQL : `SELECT SQL_CALC_FOUND_ROWS` vs `SELECT COUNT(*)` - Qu'est-ce qui est le plus rapide ?
SELECT SQL_CALC_FOUND_ROWS vs. SELECT COUNT(*) pour compter les lignes
Lors de la pagination des données avec SQL, deux méthodes existent pour déterminer l'enregistrement total nombre : SQL_CALC_FOUND_ROWS et SELECT COUNT(*). Quelle approche est plus rapide ?
Méthode 1 : SQL_CALC_FOUND_ROWS
Cette méthode ajoute l'option SQL_CALC_FOUND_ROWS à l'instruction SELECT initiale. Après avoir exécuté cette instruction, vous pouvez récupérer le nombre total de lignes en exécutant SELECT FOUND_ROWS().
Méthode 2 : SELECT COUNT(*)
Au lieu d'utiliser SQL_CALC_FOUND_ROWS, cette méthode exécute la requête d'origine sans modifications. Le nombre total de lignes est ensuite obtenu en exécutant une requête distincte : SELECT COUNT(*) FROM table.
Comparaison des performances
Le choix optimal dépend de facteurs spécifiques tels que configuration des index et des bases de données. Selon le blog sur les performances MySQL, SQL_CALC_FOUND_ROWS peut présenter des performances variables, allant d'équivalentes à nettement plus lentes (jusqu'à 10 fois plus lentes) que l'exécution de requêtes distinctes.
Recommandation
De nombreuses les utilisateurs signalent que la méthode 2 (exécution de deux requêtes) donne généralement de meilleures performances. Cependant, il est conseillé de comparer les deux méthodes avec des ensembles de données représentatifs afin de déterminer l'approche optimale pour un environnement donné.
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!