V poslední době se funkce čísla často používá a když je číslo, které má být spočítano, relativně velké, zjistí se, že počítaní(*) trvá déle a počítání(1) kratší.
Některé dokumenty obsahují následující tvrzení:
Pokud vaše datová tabulka nemá primární klíč, pak count(1) je rychlejší než count(*). Pokud existuje primární klíč, pak je primární klíč (společný primární klíč) také rychlejší než count(*). Pokud má vaše tabulka jen jedno pole, pak count(*) je nejrychlejší count(*) count(1) Porovnejte obě možnosti. Hlavní je spočítat datová pole odpovídající (1). Pokud count(1) je polyindex, id, pak musí count(1) být rychlejší. Ale rozdíl je velmi malý. Protože count(*) je pole automaticky optimalizováno pro specifikaci . Takže není potřeba počítat(?), používat count(*), SQL vám pomůže dokončit optimalizaci
Podrobnosti o počtu: count(*) vrátí celkový počet všech řádků přítomných v tabulce, včetně řádků s hodnotou null,Nicméně count (název sloupce) vrátí celkový počet všech řádků v tabulce kromě null(Počítají se také sloupce s výchozími hodnotami). odlišný název sloupce, výsledek bude výsledkem po odstranění nulové hodnoty a duplicitních dat.
V minulosti jsem nevěděl, že blog uvádí, že všem doporučuje používat count(0) a že efektivita dotazů je relativně vysoká atd
Dnes se zjistilo, že používání count(0) je mylná představa!!
count(0) První sloupec statistik není prázdný
Nepoužívejte místo count(*) číslo (název sloupce) nebo count(constant),
count(*) je syntaxe pro standardní počet řádků definovaný SQL92, který nemá nic společného s databází, NULL a non-NULL.
Poznámka: count(*) počítá řádky s hodnotou NULL, zatímco count(název sloupce) nepočítá řádky s hodnotou NULL.
Proto je v budoucnu, když budete dělat všechny statistiky a nevylučovat prázdná data, upřímně použít počet (*)!!
|