På senare tid har talfunktionen använts mycket, och när antalet som ska räknas är relativt stort visar man att räkning(*) tar längre tid och räkning(1) tar mindre tid.
Vissa dokument innehåller följande påståenden:
Om din datatabell inte har en primärnyckel, är count(1) snabbare än count(*). Om det finns en primärnyckel, är primärnyckeln (gemensam primärnyckel) också snabbare än räkningen(*). Om din tabell bara har ett fält är räkna(*) snabbast räkna(*) räkna(1) Jämför de två. Det viktigaste är att räkna datafälten som motsvarar (1). Om count(1) är ett polyindex, id, måste det vara count(1) snabbare. Men skillnaden är mycket liten. Eftersom count(*) optimeras fältet automatiskt för att specificera to. Så det finns inget behov av att räkna(?), använd räkna(*), SQL hjälper dig att slutföra optimeringen
Antal detaljer: räkning(*) kommer att returnera det totala antalet rader i tabellen, inklusive rader med värdet null,Dock kommer räkningen (kolumnnamnet) att returnera det totala antalet rader i tabellen utom null(Kolumner med standardvärden räknas också). Distinkt kolumnnamn, resultatet blir resultatet efter att nollvärdet och dubblettdata tagits bort
Tidigare visste jag inte att bloggen sa att alla rekommenderades att använda count(0) och att sökfunktionen var relativt hög, osv
Idag visar man sig att användningen av count(0) är en missuppfattning!!
count(0) Den första kolumnen i statistiken är inte tom
Använd inte nummer (kolumnnamn) eller räkning (konstant) istället för räkning(*),
count(*) är syntaxen för det standardantal rader som definieras av SQL92, vilket inte har något att göra med databasen, NULL och icke-NULL.
Observera: räkning(*) räknar rader med ett NULL-värde, medan räkningen (kolumnnamnet) inte räknar rader med ett NULL-värde.
Därför, när du i framtiden gör all statistik och inte utesluter tomma data, är det bättre att ärligt använda räkning (*)!!
|