Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mysql COUNT(*) vs COUNT(DISTINCT col)

Wenn die Spalte indiziert ist, COUNT(DISTINCT id) muss nur die Anzahl der Elemente im Index für die Spalte zurückgeben. COUNT(id) muss die Anzahl der Zeilen addieren, auf die jeder Indexeintrag zeigt, oder alle Zeilen scannen.

Für Ihre zweite Frage siehe count(*) und count(column_name), was ist der Unterschied? . Meistens COUNT(*) am besten geeignet ist; Es gibt Situationen, in denen Sie COUNT(columnname) verwenden müssen, z. B. beim Zählen von Zeilen, die mit einem Outer Join verbunden sind da Sie die Nullzeilen nicht zählen möchten.