La bataille de la pagination : SQL_CALC_FOUND_ROWS contre COUNT(*)
Dans le domaine de la pagination des bases de données, se pose une question : qui règne suprême en efficacité : la méthode SQL_CALC_FOUND_ROWS ou COUNT(*) pour déterminer le nombre total de enregistrements ?
Méthode 1 : SQL_CALC_FOUND_ROWS
Cette technique nécessite d'ajouter SQL_CALC_FOUND_ROWS à la requête SELECT d'origine et d'exécuter ensuite FOUND_ROWS() pour récupérer le nombre total d'enregistrements.
Méthode 2 : COUNT(*)
Dans cette méthode, la requête principale est exécutée normalement, suivie d'une requête SELECT COUNT(*) distincte pour obtenir le nombre total.
Le Verdict : Performance contextuelle
La réponse à l'approche la plus rapide dépend de facteurs contextuels. Selon le blog sur les performances de MySQL, le processus de prise de décision doit prendre en compte des facteurs tels que la configuration de l'index et d'autres considérations spécifiques à la base de données.
De nombreux commentaires d'utilisateurs sur le billet de blog suggèrent que SQL_CALC_FOUND_ROWS est souvent plus lent que l'émission directe de deux requêtes. parfois même jusqu'à 10 fois plus lentement.
Par conséquent, lors de la comparaison des deux options, il est crucial d'évaluer l'environnement spécifique de la base de données, l'index structure et objectifs de performance globaux pour prendre une décision éclairée.
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!