optimisation de comptage SQL obtenir de la ligne [double]
-
28-10-2019 - |
Question
Possible en double: Dans SQL, quelle est la différence entre le nombre (colonne) et le nombre ( )? Count ( ) vs count (1)
J'ai de grandes tables qui conservent des textes longs, par exemple le contenu e-mail ou nouvelles. Et ma question est-il une différence de performances pour les lignes de la table de comptage:
SELECT COUNT(*) FROM table_name
SELECT COUNT(t.id) FROM table_name as t
Quelle est la meilleure? ou celui-ci ne sera optimisée par requête optimiseur? Y at-il des documents concernant ce sujet?
La solution
Ils sont différents.
COUNT(*)
récupérera toutes les valeurs (même les valeurs de NULL
comptent).
COUNT(t.id)
ne compte pas les valeurs NULL
.
En termes de performance, ils sont les mêmes (l'optimiseur de requêtes est intelligent).
Autres conseils
plan de requête a la même, mais les tests, en utilisant * est plus rapide (un peu).
ne sont pas les valeurs nulles La prise en compte lorsque vous spécifiez un nom de colonne si.