V poslednej dobe sa často používa číselná funkcia a keď je počítané číslo relatívne veľké, zistí, že počítanie(*) trvá dlhšie a počítanie(1) kratšie.
Niektoré dokumenty obsahujú nasledujúce tvrdenia:
Ak vaša dátová tabuľka nemá primárny kľúč, count(1) je rýchlejší ako count(*). Ak existuje primárny kľúč, potom primárny kľúč (spoločný primárny kľúč) je tiež rýchlejší ako count(*). Ak má vaša tabuľka len jedno pole, count(*) je najrýchlejší count(*) count(1) Porovnajte oba. Hlavné je počítať dátové polia zodpovedajúce (1). Ak je count(1) polyindex, id, potom count(1) musí byť rýchlejší. Ale rozdiel je veľmi malý. Pretože count(*) je pole automaticky optimalizované na špecifikáciu do. Takže nie je potrebné počítať(?), používať count(*), SQL vám pomôže dokončiť optimalizáciu
Podrobnosti o počte: count(*) vráti celkový počet všetkých riadkov prítomných v tabuľke, vrátane riadkov s hodnotou null,Avšak count (názov stĺpca) vráti celkový počet všetkých riadkov v tabuľke okrem null(Počítajú sa aj stĺpce s predvolenými hodnotami). odlišný názov stĺpca, výsledok bude výsledkom po odstránení nulovej hodnoty a duplicitných dát
V minulosti som nevedel, že blog uvádza, že všetkým odporúčajú používať count(0) a že efektivita dotazov je relatívne vysoká, atď
Dnes sa zistilo, že používanie count(0) je mylná predstava!!
count(0) Prvý stĺpec štatistík nie je prázdny
Nepoužívajte číslo (názov stĺpca) alebo count(constant) namiesto count(*),
count(*) je syntax pre štandardný počet riadkov definovaný v SQL92, ktorý nemá nič spoločné s databázou, NULL ani non-NULL.
Poznámka: count(*) počíta riadky s hodnotou NULL, zatiaľ čo count(názov stĺpca) nepočíta riadky s hodnotou NULL.
Preto je v budúcnosti, keď robíte všetky štatistiky a nevylučujete prázdne dáta, lepšie úprimne použiť count (*)!!
|