In letzter Zeit wurde die Zahlenfunktion häufig verwendet, und wenn die zu zählende Zahl relativ groß ist, stellt sich heraus, dass Zählen(*) mehr Zeit benötigt und Zählung(1) weniger Zeit.
Einige Dokumente enthalten folgende Aussagen:
Wenn Ihre Datentabelle keinen Primärschlüssel hat, ist Count(1) schneller als Count(*). Wenn es einen Primärschlüssel gibt, dann ist der Primärschlüssel (gemeinsamer Primärschlüssel) ebenfalls schneller als Zahl(*). Wenn deine Tabelle nur ein Feld hat, dann ist Count(*) das schnellste Zählen(*) zählen(1) Vergleichen Sie die beiden. Das Wichtigste ist, die Datenfelder zu zählen, die zu (1) gehören. Wenn Count(1) ein Polyindex ist, id, dann muss er count(1) schneller sein. Aber der Unterschied ist sehr gering. Da count(*) gilt, wird das Feld automatisch optimiert, um zu definieren. Es ist also nicht nötig zu zählen(?), benutze count(*), SQL hilft dir, die Optimierung abzuschließen
Zähldetails: count(*) wird die Gesamtzahl aller in der Tabelle vorhandenen Zeilen zurückgeben, einschließlich Zeilen mit dem Wert null,Allerdings gibt die Anzahl (Spaltenname) die Gesamtzahl aller Zeilen in der Tabelle zurück, außer null(Spalten mit Standardwerten werden ebenfalls gezählt). mit unterschiedlichem Spaltennamen wird das Ergebnis nach Entfernen des Nullwerts und der doppelten Daten sein
Früher wusste ich nicht, dass im Blog steht, dass jedem empfohlen wird, count(0) zu verwenden, und dass die Abfrageeffizienz relativ hoch ist usw
Heute stellt sich heraus, dass die Verwendung von Count(0) ein Missverständnis ist!!
count(0) Die erste Spalte der Statistik ist nicht leer
Verwenden Sie nicht Zahl (Spaltenname) oder Anzahl (Konstante) statt Zahl(*),
count(*) ist die Syntax für die Standardanzahl der Zeilen, die von SQL92 definiert ist, was nichts mit der Datenbank NULL und nicht-NULL zu tun hat.
Hinweis: Count(*) zählt Zeilen mit einem NULL-Wert, während count(Spaltenname) keine Zeilen mit NULL-Wert zählt.
Daher ist es in Zukunft, wenn man alle Statistiken erstellt und leere Daten nicht ausschließt, besser, ehrlich Zählen (*) zu verwenden!!
|