Ceci est une réponse MySQL.
Ils fonctionnent exactement de la même manière - sauf si vous utilisez MyISAM, alors un cas particulier pour COUNT(*)
existe. J'utilise toujours COUNT(*)
de toute façon.
https://dev.mysql.com/doc /refman/5.6/en/aggregate-functions.html#function_count
###EDITCertains d'entre vous ont peut-être raté la tentative d'humour noir. Je préfère garder cela comme une question non dupliquée pour un tel jour où MySQL fera quelque chose de différent de SQL Server. J'ai donc lancé un vote pour rouvrir la question (avec une réponse clairement erronée).Pour
MyISAM
tableaux,COUNT(*)
est optimisé pour revenir très rapidement si leSELECT
extrait d'une table, aucune autre colonne n'est extraite et il n'y a pas deWHERE
clause. Par exemple :mysql> SELECT COUNT(*) FROM student;
Cette optimisation ne s'applique qu'à
MyISAM
tables, car un nombre exact de lignes est stocké pour ce moteur de stockage et peut être consulté très rapidement.COUNT(1)
n'est soumis à la même optimisation que si la première colonne est définie commeNOT NULL
.
L'optimisation MyISAM ci-dessus s'applique également à
COUNT(*)
COUNT(1)
COUNT(pk-column)
COUNT(any-non-nullable-column)
Donc la vraie réponse est qu'ils sont toujours le même.