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
Vorwort: In MySQL sind Ansichten wahrscheinlich e...
Kernel: [root@opop ~]# cat /etc/centos-release Ce...
Inhaltsverzeichnis Erster Blick Erstellen einer V...
Wenn Benutzer MySQL-Datenbanken zum ersten Mal in...
Inhaltsverzeichnis EffectList-Sammlung Effektlist...
Frage Wie können wir bei einer bestimmten MySQL-V...
Inhaltsverzeichnis 1. Einleitung 2. Beschreibung ...
Inhaltsverzeichnis 1. Grammatik 2. Beispiele 3. A...
Problembeschreibung: Der Inhalt der Datei 11 laut...
Nachdem wir eine halbe Stunde lang versucht hatte...
Führen Sie den Befehl aus: docker run --name cent...
Centos7-Startvorgang: 1.post (Selbsttest beim Ein...
Dieser Artikel beschreibt anhand von Beispielen d...
Wir sehen oft, dass Anzeigen nach ein paar Sekund...
Inhaltsverzeichnis Effektanzeige Code-Link Schlüs...