See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 15920|Vastuse: 1

[Allikas] SQL-lausetes count(0) ja count(*) valesti mõistmine

[Kopeeri link]
Postitatud 10.08.2017 13:29:00 | | |
Viimasel ajal on arvufunktsiooni palju kasutatud ning kui loendatav arv on suhteliselt suur, on leitud, et count(*) võtab rohkem aega ja count(1) vähem aega.

Mõnes dokumendis on järgmised väited:

Kui sinu andmetabelis pole primaarvõtit, siis count(1) on kiirem kui count(*).  
Kui on primaarvõti, siis on primaarvõti (ühine primaarvõti) samuti kiirem kui count(*).  
Kui sinu tabelis on ainult üks väli, siis count(*) on kiireim  
count(*) count(1) Võrdle neid kahte. Peamine on loendada andmevälju, mis vastavad (1-le).  
Kui count(1) on polüindeks, id, siis peab see olema count(1) kiirem. Aga on väga väike.  
Kuna count(*), optimeeritakse väli automaatselt määramiseks. Seega pole vaja count(?), kasutada count(*), SQL aitab optimeerimise lõpule viia

  Loenduse üksikasjad:
count(*) tagastab tabelis olevate ridade koguarvu, sealhulgas read, mille väärtus on null,Kuid count (veeru nimi) tagastab tabeli kõigi ridade koguarvu, välja arvatud null(Arvestatakse ka veerud, millel on vaikimisi väärtused).
erineva veeru nimi, tulemus on tulemus pärast nullväärtuse ja duplikaatandmete eemaldamist


Varem ei teadnud ma, et blogis soovitatakse kõigil kasutada count(0) ja et päringute efektiivsus on suhteliselt kõrge jne

Tänapäeval on leitud, et count(0) kasutamine on eksiarvamus!!
loend(0) Statistika esimene veerg ei ole tühi

Ära kasuta number(veeru nimi) ega count(constant) loend(*) asemel,

count(*) on SQL92 poolt määratletud standardse ridade arvu süntaks, mis ei ole seotud andmebaasiga, NULL ega mitte-NULL.

Märkus: count(*) loendab ridu, mille väärtus on NULL, samas kui count(veeru nimi) ei loe ridu, mille väärtus on NULL.

Seega, tulevikus, kui teha kõik statistilised andmed ja mitte välistada tühje andmeid, on ausalt mõistlik kasutada loendust (*)!!








Eelmine:Erinevus let ja var definitsiooni muutujate vahel js-is
Järgmine:jquery rakendab tabelit, et kuvada kuni 10 andmetükki
Postitatud 10.08.2017 13:54:00 |
õpetatud                 
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com