Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 15920|Odgovoriti: 1

[Vir] Nerazumevanje count(0) in count(*) v SQL stavkih

[Kopiraj povezavo]
Objavljeno na 10. 08. 2017 13:29:00 | | |
V zadnjem času se številska funkcija pogosto uporablja, in ko je število za štetje razmeroma veliko, se izkaže, da štetje(*) traja dlje, šteje(1) pa krajše.

Nekateri dokumenti vsebujejo naslednje izjave:

Če vaša podatkovna tabela nima primarnega ključa, je count(1) hitrejši od count(*).  
Če obstaja primarni ključ, je primarni ključ (skupni primarni ključ) prav tako hitrejši od count(*).  
Če ima vaša tabela samo eno polje, je count(*) najhitrejši  
count(*) count(1) Primerjaj oba. Glavna stvar je šteti podatkovna polja, ki ustrezajo (1).  
Če je count(1) poliindeks, id, potem mora biti count(1) hitrejši. A razlika je zelo majhna.  
Ker count(*) je polje samodejno optimizirano za določitev . Torej ni potrebe po štetju(?), uporabi count(*), SQL ti bo pomagal dokončati optimizacijo

  Podrobnosti o štetju:
count(*) bo vrnil skupno število vseh vrstic v tabeli, vključno z vrsticami z vrednostjo null,Vendar pa count (ime stolpca) vrne skupno število vseh vrstic v tabeli razen null(Štejejo se tudi stolpci z privzetimi vrednostmi).
različno ime stolpca, rezultat bo rezultat po odstranitvi ničelne vrednosti in podvojenih podatkih


V preteklosti nisem vedel, da blog navaja, da so vsi priporočeni za uporabo count(0) in da je učinkovitost poizvedb razmeroma visoka itd

Danes se zdi, da je uporaba count(0) zmotna predstava!!
count(0) Prvi stolpec statistike ni prazen

Ne uporabljajte number(ime stolpca) ali count(constant) namesto count(*),

count(*) je sintaksa za standardno število vrstic, določenih v SQL92, ki nima nobene zveze z bazo podatkov, NULL in ne-NULL.

Opomba: count(*) šteje vrstice z vrednostjo NULL, medtem ko count(ime stolpca) ne šteje vrstic z vrednostjo NULL.

Zato je v prihodnje, ko boste delali vse statistike in ne izključili praznih podatkov, bolje iskreno uporabiti števec (*)!!








Prejšnji:Razlika med definicijskima spremenljivkama naj in var v js
Naslednji:jquery implementira tabelo za prikaz do 10 podatkov
Objavljeno na 10. 08. 2017 13:54:00 |
poučeval                 
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com