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.