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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top