Middle
Кадом бештар кор мекунад: count(*) ё count(номи сутун)?
sobes.tech AI
Ҷавоб аз AI
Дар бештари системҳои идоракунии маълумот (DBMS), count(*) ва count(номи сутун) бо логикаи гуногун кор мекунанд:
count(*)ҳамаи сатрҳоро ҳисоб мекунад, аз ҷумла онҳое, ки арзишҳои сутунҳо метавонанд NULL бошанд.count(номи сутун)танҳо он сатрҳоро ҳисоб мекунад, ки арзиши дар сутуни муайяншуда не NULL аст.
Аз рӯи суръатбахшӣ, count(*) одатан тезтар ё ҳадди ақал ҳамон суръат аст, зеро системаи идоракунии маълумот ба арзишҳои сутунҳои мушаххас тафтиш кардан лозим нест, танҳо сатрҳоро ҳисоб мекунад. Дар баъзе муҳитҳои оптимизатсияшуда, count(*) метавонад аз маълумотҳои мета ё индексҳо барои ҳисоб кардани зуд истифода кунад.
Масалан:
SELECT count(*) FROM users; -- ҳамаи сатрҳоро ҳисоб мекунад
SELECT count(email) FROM users; -- танҳо он сатрҳоро ҳисоб мекунад, ки дар онҳо email не NULL аст
Хулоса, агар танҳо шумораи умумии сатрҳоро лозим бошад, истифодаи count(*) беҳтар аст — ин одатан тезтар ва дақиқтар аст.