Middle
Šta brže radi: count(*) ili count(ime_kolone)?
sobes.tech АИ
Одговор од АИ
U većini sistema za upravljanje bazama podataka (DBMS), count(*) i count(naziv_kolone) funkcionišu prema različitoj logici:
count(*)broji sve redove, uključujući one gde vrednosti u kolonama mogu biti NULL.count(naziv_kolone)broji samo one redove gde vrednost u navedenoj koloni nije NULL.
Što se tiče performansi, count(*) je obično brži ili bar isto tako brz, jer DBMS ne mora da proverava vrednosti u određenoj koloni, već samo broji redove. U nekim optimizovanim motorima, count(*) može koristiti metapodatke ili indekse za brzo brojanje.
Primer:
SELECT count(*) FROM users; -- broji sve redove
SELECT count(email) FROM users; -- broji samo redove gde email nije NULL
Ukratko: ako vam je potrebna samo ukupna količina redova, bolje je koristiti count(*) — to je obično brže i preciznije.