Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 15920|Antwoord: 1

[Bron] Misverstand van count(0) en count(*) in SQL-instructies

[Link kopiëren]
Geplaatst op 10-08-2017 13:29:00 | | |
Recentelijk is de getalfunctie veel gebruikt, en wanneer het te tellen aantal relatief groot is, blijkt dat tellen(*) meer tijd kost en tell(1) minder tijd in beslag neemt.

Sommige documenten bevatten de volgende verklaringen:

Als je datatabel geen primaire sleutel heeft, dan is count(1) sneller dan count(*).  
Als er een primaire sleutel is, dan is de primaire sleutel (gezamenlijke primaire sleutel) ook sneller dan tellen(*).  
Als je tabel maar één veld heeft, is count(*) het snelst  
tellen(*) tellen(1) Vergelijk de twee. Het belangrijkste is om de datavelden te tellen die overeenkomen met (1).  
Als count(1) een polyindex is, id, dan moet het count(1) sneller zijn. Maar het verschil is heel klein.  
Omdat count(*) wordt het veld automatisch geoptimaliseerd om aan te specificeren. Dus er is geen noodzaak om te tellen(?), gebruik count(*), SQL helpt je de optimalisatie te voltooien

  Tellingdetails:
count(*) zal het totale aantal rijen in de tabel teruggeven, inclusief rijen met een waarde null,Count (kolomnaam) geeft echter het totale aantal rijen in de tabel terug behalve null(Kolommen met standaardwaarden worden ook meegeteld).
Met een aparte kolomnaam, zal het resultaat het resultaat zijn nadat de nulwaarde en de dubbele data zijn verwijderd


In het verleden wist ik niet dat de blog zei dat iedereen werd aanbevolen count(0) te gebruiken en dat de query-efficiëntie relatief hoog was, enzovoort

Tegenwoordig blijkt het gebruik van count(0) een misvatting te zijn!!
count(0) De eerste kolom van de statistieken is niet leeg

Gebruik geen nummer (kolomnaam) of count (constant) in plaats van count(*),

count(*) is de syntaxis voor het standaard aantal rijen gedefinieerd door SQL92, wat niets te maken heeft met de database, NULL en niet-NULL.

Opmerking: count(*) telt rijen met een NULL-waarde, terwijl count(kolomnaam) geen rijen met een NULL-waarde telt.

Daarom is het in de toekomst, als je alle statistieken hebt gedaan en lege data niet uitsluit, beter om eerlijk count (*) te gebruiken!!








Vorig:Het verschil tussen let en var-definitievariabelen in js
Volgend:jquery implementeert een tabel om tot 10 gegevensstukken weer te geven
Geplaatst op 10-08-2017 13:54:00 |
Onderwezen                 
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com