Bylo by naivní myslet si, že COUNT(*) funguje tak, že databáze do paměti natáhne celou tabulku a následně spočte řádky. Takovéto konstrukce jsou samozřejmě optimalizované. Záleží ale na konkrétní databázi, co je rychlejší a co pomalejší - jak už jsem psal, tak COUNT(id) je pokud vím rychlejší než COUNT(*) např. ve starších verzích Oracle, v jiných databázích to může být zase naopak. MySQL je optimalizované na COUNT(*) (jak ukazují třeba příklady v MySQL dokumentaci), ale COUNT(id) mu problémy dělat jistě taky nebude.