Count, de mit?

count(*)? count(1)? count(PK)?

Elmondom az én hozzáállásomat. ANSI SQL szerint a count(*) optimalizált és a nem megy végig a táblán, hanem a metaadatából olvassa ki, hogy hány sora van. Ezt nem minden adatbázis-kezelő implementálta így.

A count(1) és a count(PK) egyértelműen végigmegy a táblán, de talán az utóbbi kicsit gyorsabb.

Viszont ha valami feltétellel együtt használjuk, akkor valószínűleg a PK-s megoldás a legjobb. Ebben biztosan nem lesz NULL (amit a count nem számolna), biztosan indexelve van és biztosan nem marad ki egy sor sem.

Éppen otthon vagyok és most nem férek hozzá egy olyan adatbázishoz sem, ahol masszív mennyiségű adat van, és ki tudnám próbálni, de visszatérek rá.