Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

O mysql count(*) é muito menos eficiente que o count(specific_field)?


Para InnoDB

Se specific_field não é anulável, eles são equivalentes e têm o mesmo desempenho.

Se specific_field é anulável, eles não fazem a mesma coisa. COUNT(specific_field) conta as linhas que têm um valor não nulo de specific_field . Isso requer olhar para o valor de specific_field para cada linha. COUNT(*) simplesmente conta o número de linhas e, neste caso, pode ser mais rápido, pois não requer examinar o valor de specific_field .

Para MyISAM

Há uma otimização especial para o seguinte, para que nem precise buscar todas as linhas:
SELECT COUNT(*) FROM yourtable