Sobes.tech
Middle

Was funktioniert schneller: count(*) oder count(Spaltenname)?

sobes.tech KI

Antwort von AI

In den meisten Datenbanksystemen (DBMS) funktionieren count(*) und count(Spaltenname) mit unterschiedlichen Logiken:

  • count(*) zählt alle Zeilen, einschließlich derjenigen, bei denen die Werte in den Spalten NULL sein können.
  • count(Spaltenname) zählt nur die Zeilen, bei denen der Wert in der angegebenen Spalte nicht NULL ist.

In Bezug auf die Leistung ist count(*) in der Regel schneller oder mindestens genauso schnell, da das DBMS keine Werte in einer bestimmten Spalte überprüfen muss, sondern nur die Zeilen zählt. In einigen optimierten Engines kann count(*) Metadaten oder Indizes für eine schnelle Zählung verwenden.

Beispiel:

SELECT count(*) FROM users; -- zählt alle Zeilen
SELECT count(email) FROM users; -- zählt nur die Zeilen, bei denen email nicht NULL ist

Kurz gesagt: Wenn nur die Gesamtzahl der Zeilen benötigt wird, ist die Verwendung von count(*) vorzuziehen – es ist in der Regel schneller und genauer.