Sobes.tech
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.