Formation PUB200 : MySQL, 2018 Manipulation des champs affichés

8.2 COUNT(*) vs COUNT(nomchamp)


Contrairement aux autres fonctions d'agrégation, COUNT() s'utilise presque toujours avec une étoile (Ex : COUNT(*) ). 

En fait, il est possible de préciser le nom du champ à compter (Ex : COUNT(id) ) mais ceci est, la plupart du temps, inutile et même nuisible. 

Dans la démonstration suivante, il n'y a qu'une différence de 0.08 secondes mais avec un nombre d'enregistrements plus élevé, on pourrait atteindre quelques secondes de différence, ce qui est énorme dans le monde du Web.

COUNT(*) vs COUNT(colonne)

Traitement des valeurs nulles

Dans le cas où les informations d'un champ peuvent être nulles, le résultat de COUNT(*) par rapport à COUNT(nomchamp) peut différer. C'est que les valeurs nulles ne feront pas partie du décompte lorsqu'on demande de compter seulement la colonne pouvant contenir des valeurs nulles. 

À vous donc de réserver l'utilisation de COUNT(nomchamp) pour les cas où, effectivement, vous ne désirez pas compter les enregistrements pour lesquels ce champ contient la valeur NULL.

COUNT(*) vs COUNT(colonne)

Pour plus d'information

« 12.19.1 GROUP BY (Aggregate) Functions - COUNT ». MySQL. http://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html#function_count

« COUNT(*) vs COUNT(col) ». MySQL Performance Blog. https://www.percona.com/blog/2007/04/10/count-vs-countcol/

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre