Maison  >  Article  >  base de données  >  Qu'est-ce qui est le plus performant : PDO::rowCount() ou COUNT(*) avec ou sans index ?

Qu'est-ce qui est le plus performant : PDO::rowCount() ou COUNT(*) avec ou sans index ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-24 07:14:02354parcourir

Which is More Performant: PDO::rowCount() or COUNT(*) With or Without an 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!

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