Ако колоната е индексирана, COUNT(DISTINCT id)
просто трябва да върне броя на елементите в индекса за колоната. COUNT(id)
трябва да сумира броя на редовете, към които сочи всеки запис в индекс, или да сканира всички редове.
За втория си въпрос вижте count(*) и count(column_name), каква е разликата?
. През повечето време COUNT(*)
е най-подходящо; има някои ситуации, като броене на редове, съединени с външно съединение, където трябва да използвате COUNT(columnname)
защото не искате да броите нулевите редове.