Maison > base de données > tutoriel mysql > le corps du texte

SELECT COUNT() vs mysql_num_rows() : quel est le meilleur pour compter les grandes tables ?

DDD
Libérer: 2024-11-01 05:13:27
original
804 Les gens l'ont consulté

SELECT COUNT() vs mysql_num_rows(): Which is Better for Counting Large Tables?

Comptage des grandes tables : SELECT COUNT() vs mysql_num_rows()

Lors de la navigation dans une table contenant des millions d'enregistrements, il est crucial de considérez les implications en termes de performances du comptage des lignes. Deux options courantes sont SELECT COUNT() et mysql_num_rows(), chacune avec ses propres avantages et inconvénients.

SELECT COUNT()

SELECT COUNT() est spécialement conçu pour compter les lignes et alloue de la mémoire uniquement pour stocker le résultat. Il fonctionne efficacement en utilisant un processus de serveur interne qui évite de récupérer les données réelles. Cela le rend idéal pour les situations où seul le nombre de lignes est nécessaire.

mysql_num_rows()

mysql_num_rows(), en revanche, traite l'ensemble des résultats. Il alloue de la mémoire pour tous les enregistrements renvoyés et place le serveur dans un « mode de récupération » qui implique le verrouillage et d'autres opérations gourmandes en ressources. Cette approche peut être plus lente, en particulier pour les grands ensembles de résultats.

Pagination pour les résultats de recherche

Pour la pagination basée sur les résultats de recherche, l'utilisation de SELECT COUNT() est généralement préférable. En incorporant la condition de recherche dans l'instruction SELECT COUNT(), vous pouvez obtenir le nombre de lignes sans avoir besoin d'une requête distincte. Cette approche réduit le nombre de requêtes et améliore les performances globales.

Par exemple, au lieu d'utiliser deux requêtes distinctes comme dans votre exemple :

1. $condition = " fname='rinchik' ";
2. $result_count = "SELECT COUNT(id) FROM my_large_table WHERE" . $condition;
Copier après la connexion

Vous pouvez modifier votre code pour :

$condition = " fname='rinchik' ";
$result = "SELECT * FROM my_large_table WHERE" . $condition;
$result_count = mysql_num_rows($result);
Copier après la connexion

Conclusion

Bien que mysql_num_rows() puisse fournir le nombre de lignes, l'utilisation de SELECT COUNT() est une approche plus efficace pour compter les grandes tables ou récupérer le nombre de lignes pour résultats de recherche. Cela évite la récupération inutile de données et améliore considérablement les performances.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!