Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 15920|Atbildi: 1

[Avots] Count(0) un count(*) pārpratums SQL priekšrakstos

[Kopēt saiti]
Publicēts 10.08.2017 13:29:00 | | |
Pēdējā laikā skaitļu funkcija tiek izmantota daudz, un, ja skaitāmais skaitlis ir salīdzinoši liels, tiek konstatēts, ka count(*) aizņem vairāk laika, un count(1) aizņem mazāk laika.

Dažos dokumentos ir šādi paziņojumi:

Ja datu tabulai nav primārās atslēgas, count(1) ir ātrāks nekā count(*).  
Ja ir primārā atslēga, tad arī primārā atslēga (kopīgā primārā atslēga) ir ātrāka par count(*).  
Ja tabulā ir tikai viens lauks, tad count(*) ir visātrākais  
count(*) count(1) Salīdziniet abus. Galvenais ir saskaitīt datu laukus, kas atbilst (1).  
Ja count(1) ir poliindekss, id, tad tam jābūt count(1) ātrākam. Bet atšķirība ir ļoti maza.  
Tā kā count(*), lauks tiek automātiski optimizēts, lai norādītu. Tātad nav nepieciešams skaitīt (?), izmantot count(*), SQL palīdzēs jums pabeigt optimizāciju

  Skaitīt detaļas:
count(*) atgriezīs visu tabulā esošo rindu kopējo skaitu, ieskaitot rindas ar vērtību null,Tomēr count (kolonnas nosaukums) atgriezīs visu tabulas rindu kopējo skaitu, izņemot null(Tiek skaitītas arī kolonnas ar noklusējuma vērtībām).
atšķirīgs kolonnas nosaukums, rezultāts būs rezultāts pēc vērtības Null un datu dublikātu noņemšanas


Agrāk es nezināju, ka emuārā bija teikts, ka ikvienam ieteicams izmantot count(0) un ka vaicājuma efektivitāte ir salīdzinoši augsta utt

Mūsdienās tiek konstatēts, ka count(0) izmantošana ir nepareizs priekšstats!!
count(0) Statistikas pirmā kolonna nav tukša

Nelietojiet number(kolonnas nosaukums) vai count(constant) count(*) vietā,

count(*) ir SQL92 definētā standarta rindu skaita sintakse, kurai nav nekāda sakara ar datu bāzi, NULL un ne-NULL.

Piezīme: count(*) skaita rindas ar vērtību NULL, bet count(kolonnas nosaukums) neskaita rindas ar vērtību NULL.

Tāpēc nākotnē, veicot visu statistiku un neizslēdzot tukšus datus, labāk ir godīgi izmantot skaitu (*)!!








Iepriekšējo:Atšķirība starp let un var definīcijas mainīgajiem js
Nākamo:jQuery ievieš tabulu, lai parādītu līdz 10 datu vienībām
Publicēts 10.08.2017 13:54:00 |
mācīja                 
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com