Mysql
 sql >> Base de données >  >> RDS >> Mysql

mysql count(*) est-il beaucoup moins efficace que count(specific_field) ?

Pour InnoDB

Si specific_field n'est pas nullable, ils sont équivalents et ont les mêmes performances.

Si specific_field est nullable, ils ne font pas la même chose. COUNT(specific_field) compte les lignes qui ont une valeur non nulle de specific_field . Cela nécessite de regarder la valeur de specific_field pour chaque rangée. COUNT(*) compte simplement le nombre de lignes et dans ce cas peut être plus rapide car il ne nécessite pas d'examiner la valeur de specific_field .

Pour MyISAM

Il existe une optimisation spéciale pour les éléments suivants afin qu'il n'ait même pas besoin de récupérer toutes les lignes :

SELECT COUNT(*) FROM yourtable