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(*) və 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.