Dies ist eine MySQL-Antwort.
Sie funktionieren genau gleich - es sei denn, Sie verwenden MyISAM, dann ein Sonderfall für COUNT(*) existiert. Ich verwende immer COUNT(*) sowieso.
https://dev.mysql.com/doc /refman/5.6/en/aggregate-functions.html#function_count
Für MyISAM Tabellen, COUNT(*) ist optimiert, um sehr schnell zurückzukehren, wenn SELECT aus einer Tabelle abruft, werden keine anderen Spalten abgerufen, und es gibt kein WHERE Klausel. Zum Beispiel:
mysql> SELECT COUNT(*) FROM student;
Diese Optimierung gilt nur für MyISAM Tabellen, da für diese Speicher-Engine eine genaue Zeilenanzahl gespeichert wird und sehr schnell darauf zugegriffen werden kann. COUNT(1) unterliegt nur dann der gleichen Optimierung, wenn die erste Spalte als NOT NULL definiert ist .
Die obige MyISAM-Optimierung gilt gleichermaßen für
COUNT(*)
COUNT(1)
COUNT(pk-column)
COUNT(any-non-nullable-column)
Die wirkliche Antwort ist also, dass sie es immer sind das gleiche.