Umsetzungseffekt: 1. count(1) und count(*) Wenn die Datenmenge in der Tabelle groß ist, dauert die Verwendung von count(1) nach der Analyse der Tabelle länger als die Verwendung von count(*)! Aus dem Ausführungsplan haben count(1) und count(*) dieselbe Wirkung. Nach der Analyse der Tabelle benötigt count(1) zwar weniger Zeit als count(*) (für Daten mit bis zu 10.000 Elementen), der Unterschied ist jedoch nicht groß. Wenn count(1) ein gruppierter Index bzw. eine ID ist, dann ist count(1) definitiv schneller. Aber der Unterschied ist sehr gering. Weil count(*) automatisch auf dieses Feld optimiert. Daher ist count(1) nicht erforderlich. Verwenden Sie count(*). SQL hilft Ihnen bei der Optimierung. Daher: Es gibt grundsätzlich keinen Unterschied zwischen count(1) und count(*)! 2. count(1) und count(Feld) Der Hauptunterschied zwischen beiden ist (1) count(1) zählt die Anzahl aller Datensätze in der Tabelle, einschließlich der Datensätze, deren Felder Null sind. (2) count(field) zählt, wie oft das Feld in der Tabelle vorkommt. Dabei wird der Fall ignoriert, in dem das Feld null ist. Das heißt, Datensätze, deren Felder Null sind, werden nicht gezählt. Der Unterschied zwischen count(*) und count(1) und count(Spaltenname) Ausführungseffekt: count(*) umfasst alle Spalten, was der Anzahl der Zeilen entspricht. Beim Zählen der Ergebnisse werden Spaltenwerte mit NULL-Werten nicht ignoriert. Ausführungseffizienz: Beispielanalyse mysql> Tabelle erstellen counttest(Name char(1), Alter char(2)); Abfrage OK, 0 Zeilen betroffen (0,03 Sek.) mysql> in Counttest-Werte einfügen -> ('a', '14'),('a', '15'), ('a', '15'), -> ('b', NULL), ('b', '16'), -> ('c', '17'), -> ('d', null), ->('e', ''); Abfrage OK, 8 Zeilen betroffen (0,01 Sek.) Datensätze: 8 Duplikate: 0 Warnungen: 0 mysql> wähle * aus Counttest; +------+------+ | Name | Alter | +------+------+ | ein | 14 | | ein | 15 | | ein | 15 | | b | NULL | | b | 16 | | c | 17 | | d | NULL | | e | | +------+------+ 8 Zeilen im Satz (0,00 Sek.) mysql> wähle Name, Anzahl(Name), Anzahl(1), Anzahl(*), Anzahl(Alter), Anzahl(eindeutig(Alter)) -> von Counttest -> nach Namen gruppieren; +------+----------+----------+----------+----------+------------+----------------------+ | Name | Anzahl(Name) | Anzahl(1) | Anzahl(*) | Anzahl(Alter) | Anzahl(distinct(Alter)) | +------+----------+----------+----------+----------+------------+----------------------+ | ein | 3 | 3 | 3 | 3 | 2 | | b | 2 | 2 | 2 | 1 | 1 | | c | 1 | 1 | 1 | 1 | 1 | | d | 1 | 1 | 1 | 0 | 0 | | e | 1 | 1 | 1 | 1 | 1 | +------+----------+----------+----------+----------+------------+----------------------+ 5 Zeilen im Satz (0,00 Sek.) Zusätzliche Referenz: http://blog.csdn.net/lihuarongaini/article/details/68485838 Damit ist dieser Artikel über die Unterschiede zwischen count(1), count(*) und count(Spaltenname) abgeschlossen. Weitere Informationen zu count(1), count(*) und count(Spaltenname) finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: So kapseln Sie Timerkomponenten in Vue3
Datenbank anzeigen show databases; Erstellen eine...
Während des Entwicklungsprozesses stoße ich häufi...
Wie lösche ich Umgebungsvariablen unter Linux? Ve...
In diesem Artikel wird der spezifische Code von J...
In diesem Artikel wird hauptsächlich das Stoppen/...
1. Überprüfen Sie die maximale Anzahl geöffneter ...
Als ich vor einigen Tagen an einer Anforderung ar...
1. Normale Hintergrundunschärfe Code: <Stil>...
In diesem Artikel wird der spezifische Code für J...
CSS3 kann die Farbe von Bildern ändern. Ab sofort...
Dieser Artikel beschreibt anhand eines Beispiels,...
In diesem Artikelbeispiel wird der spezifische JS...
veranschaulichen: Als ich heute das letzte Experi...
ab-Befehlsprinzip Der Befehl ab von Apache simuli...
1. Überprüfen Sie, ob das vorhandene Nginx IPv6 u...