Om kolumnen är indexerad, COUNT(DISTINCT id)
behöver bara returnera antalet objekt i indexet för kolumnen. COUNT(id)
måste lägga ihop antalet rader som varje indexpost pekar på, eller skanna alla rader.
För din andra fråga, se count(*) och count(column_name), vad är skillnaden?
. För det mesta, COUNT(*)
är mest lämplig; det finns vissa situationer, som att räkna rader som är sammanfogade med en yttre sammanfogning, där du behöver använda COUNT(columnname)
eftersom du inte vill räkna null-raderna.