Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 15920|Répondre: 1

[Source] Mauvaise compréhension de count(0) et count(*) dans les instructions SQL

[Copié le lien]
Publié sur 10/08/2017 13:29:00 | | |
Récemment, la fonction numérique a été beaucoup utilisée, et lorsque le nombre à compter est relativement grand, on constate que compter (*) prend plus de temps et compter(1) moins.

Certains documents comportent les déclarations suivantes :

Si votre table de données ne possède pas de clé primaire, alors count(1) est plus rapide que count(*).  
S’il existe une clé primaire, alors la clé primaire (clé primaire jointe) est également plus rapide que count(*).  
Si votre table ne comporte qu’un seul champ, alors compte(*) est le plus rapide  
compte(*) compte(1) Comparez les deux. L’essentiel est de compter les champs de données correspondant à (1).  
Si count(1) est un polyindex, id, alors il doit être count(1) plus rapide. Mais la différence est très faible.  
Parce que count(*), le champ est automatiquement optimisé pour spécifier à. Il n’est donc pas nécessaire de compter ( ?), utiliser compter (*), SQL vous aidera à finaliser l’optimisation

  Détails du décompte :
count(*) retournera le nombre total de toutes les lignes présentes dans le tableau, y compris les lignes avec une valeur nulle,Cependant, le compte (nom de la colonne) retournera le nombre total de toutes les lignes du tableau sauf null(Les colonnes avec des valeurs par défaut sont également comptabilisées).
nom de colonne distinct, le résultat sera celui après suppression de la valeur nulle et duplique des données


Par le passé, je ne savais pas que le blog disait que tout le monde était recommandé d’utiliser count(0) et que l’efficacité des requêtes était relativement élevée, etc

Aujourd’hui, on constate que l’utilisation de comptage(0) est une idée reçue !!
compte(0) La première colonne des statistiques n’est pas vide

N’utilisez pas number(nom de colonne) ou count(constant) au lieu de count(*),

count(*) est la syntaxe du nombre standard de lignes défini par SQL92, qui n’a rien à voir avec la base de données, NULL et non-NULL.

Note : count(*) compte les lignes avec une valeur NULL, tandis que count(nom de la colonne) ne compte pas les lignes avec une valeur NULL.

Ainsi, à l’avenir, lorsque vous faites toutes les statistiques et que vous n’excluez pas les données vides, il vaut mieux utiliser honnêtement le comptage (*) !!








Précédent:La différence entre les variables de définition de let et var dans js
Prochain:jquery implémente une table pour afficher jusqu’à 10 données
Publié sur 10/08/2017 13:54:00 |
enseigné                 
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com