Sobes.tech
Middle

Ce funcționează mai rapid: count(*) sau count(numele_coloanei)?

sobes.tech AI

Răspuns de la AI

În majoritatea sistemelor de gestionare a bazelor de date (SGBD), count(*) și count(nume_coloană) funcționează cu logici diferite:

  • count(*) numără toate rândurile, inclusiv cele în care valorile din coloane pot fi NULL.
  • count(nume_coloană) numără doar rândurile în care valoarea din coloana specificată nu este NULL.

Din punct de vedere al performanței, count(*) este de obicei mai rapid sau cel puțin la fel de rapid, deoarece SGBD-ul nu trebuie să verifice valorile dintr-o coloană anume, ci doar să numere rândurile. În unele motoare optimizate, count(*) poate folosi metadate sau indecși pentru o numărătoare rapidă.

Exemplu:

SELECT count(*) FROM users; -- numără toate rândurile
SELECT count(email) FROM users; -- numără doar rândurile în care email nu este NULL

Pe scurt: dacă ai nevoie doar de numărul total de rânduri, este mai bine să folosești count(*), deoarece este de obicei mai rapid și mai precis.