Maison >base de données >tutoriel mysql >Qu'est-ce qui est le plus performant : PDO::rowCount() ou COUNT(*) avec ou sans index ?
PDO::rowCount vs. COUNT(*) Comparaison des performances
Question :
Qu'est-ce qui fonctionne le mieux dans une requête SELECT avec une vérification du nombre de lignes : en utilisant PDO::rowCount() ou en incluant COUNT(*) dans la requête ? De plus, quelle option est la plus efficace lorsqu'un index est défini sur le champ id ?
Réponse :
1ère question : Count(*) vs. PDO ::rowCount()
En interne, COUNT() dans MySQL alloue un minimum de mémoire pour stocker uniquement le résultat du décompte, tandis que PHP traite l'ensemble des résultats dans PDO::rowCount(), allouant de la mémoire pour tous résultats récupérés. Par conséquent, COUNT() est plus rapide dans MySQL.
2ème question : COUNT(id) vs. COUNT(*) avec Index
COUNT() est préféré à COUNT(id) même lorsqu'un index est défini sur le champ id. En effet, COUNT() est optimisé pour compter les valeurs rapidement, réduisant ainsi le besoin de récupérer chaque ligne, tandis que COUNT(id) nécessite d'accéder à chaque ligne, ce qui diminue potentiellement 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!