Sobes.tech
Middle

Hansı daha sürətli işləyir: count(*) və ya count(sütun_adı)?

sobes.tech Süni İntellekt

AI-dan cavab

Əksər verilənlər bazası idarəetmə sistemlərində (count(*)count(sütun_adı)) işləmə logikası fərqlidir:

  • count(*) bütün sətirləri sayır, sütunlarda NULL ola biləcək dəyərlər daxil olmaqla.
  • count(sütun_adı) yalnız göstərilən sütundakı NULL olmayan dəyərləri sayır.

Performans baxımından, count(*) adətən daha sürətli və ya ən azı eyni sürətdədir, çünki verilənlər bazası müəyyən bir sütundakı dəyərləri yoxlamalı deyil, sadəcə sətirləri sayır. Bəzi optimallaşdırılmış motorlarda, count(*) sürətli sayım üçün meta məlumatlar və ya indekslərdən istifadə edə bilər.

Nümunə:

SELECT count(*) FROM users; -- bütün sətirləri sayır
SELECT count(email) FROM users; -- yalnız email NULL olmayan sətirləri sayır

Qısaca: yalnız ümumi sətir sayına ehtiyacınız varsa, count(*) istifadə etmək daha yaxşıdır — bu adətən daha sürətli və daha dəqiq olur.