Korrekt. COUNT(*) är alla rader i tabellen, COUNT(Uttryck) är där uttrycket endast är icke-null.
Om alla kolumner är NULL (vilket indikerar att du inte har en primärnyckel, så detta bör inte hända i en normaliserad databas) COUNT(*) fortfarande returnerar alla infogade rader. Gör bara inte det.
Du kan tänka på att *-symbolen betyder "i tabellen" och inte "i någon kolumn".
Detta beskrivs i MySQL Reference Manual .