SQL RET -Zeilenzahloptimierung [Duplikat
-
28-10-2019 - |
Frage
Mögliches Duplikat:
In SQL, was ist der Unterschied zwischen Count (Spalte) und Count ()?
Zählen() gegen Graf (1)
Ich habe große Tabellen, die lange Texte beispielsweise E -Mail -Inhalte oder Nachrichten behalten. Und meine Frage gibt es einen Unterschied für die Leistung für die Zählung von Tabellenzeilen:
SELECT COUNT(*) FROM table_name
SELECT COUNT(t.id) FROM table_name as t
Welches ist besser? Oder wird letzteres durch den Abfrageoptimierer optimiert? Gibt es eine Dokumentation dazu?
Lösung
Sie sind anders.
COUNT(*)
wird alle Werte abrufen (sogar die NULL
Werte zählen).COUNT(t.id)
zählt das nicht NULL
Werte.
In Bezug auf die Leistung sind sie gleich (der Abfrageoptimierer ist intelligent).
Andere Tipps
Der Abfrageplan sieht gleich aus, aber beim Testen ist die Verwendung von * schneller (leicht).
Nulls berücksichtigen bei der Angabe eines Spaltennamens jedoch nicht.