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.