Pour InnoDB
Si specific_field
n'est pas nullable, ils sont équivalents et ont les mêmes performances.
Si specific_field
est nullable, ils ne font pas la même chose. COUNT(specific_field)
compte les lignes qui ont une valeur non nulle de specific_field
. Cela nécessite de regarder la valeur de specific_field
pour chaque rangée. COUNT(*)
compte simplement le nombre de lignes et dans ce cas peut être plus rapide car il ne nécessite pas d'examiner la valeur de specific_field
.
Pour MyISAM
Il existe une optimisation spéciale pour les éléments suivants afin qu'il n'ait même pas besoin de récupérer toutes les lignes :
SELECT COUNT(*) FROM yourtable