Recentemente, a função numérica tem sido muito usada e, quando o número a ser contado é relativamente grande, descobre-se que contar(*) leva mais tempo, e contar(1) leva menos.
Alguns documentos trazem as seguintes declarações:
Se sua tabela de dados não tiver uma chave primária, então count(1) é mais rápida que count(*). Se houver uma chave primária, então a chave primária (chave primária conjunta) também é mais rápida que count(*). Se sua tabela tem apenas um campo, então count(*) é o mais rápido contar(*) contar(1) Comparar os dois. O principal é contar os campos de dados correspondentes a (1). Se count(1) for um polyindex, id, então ele deve ser count(1) mais rápido. Mas a diferença é muito pequena. Como count(*), o campo é automaticamente otimizado para especificar para. Então não há necessidade de contar(?), usar contagem (*), SQL vai te ajudar a completar a otimização
Detalhes da contagem: count(*) retornará o número total de todas as linhas presentes na tabela, incluindo linhas com valor nulo,No entanto, count (nome da coluna) retornará o número total de todas as linhas da tabela, exceto nulo(Colunas com valores padrão também são contadas). nome distinto da coluna, o resultado será o resultado após remover o valor nulo e duplicar os dados
No passado, eu não sabia que o blog dizia que todos eram recomendados a usar count(0) e que a eficiência das consultas era relativamente alta, etc
Hoje, descobre-se que usar contagem (0) é um equívoco!!
count(0) A primeira coluna da estatística não está vazia
Não use number(nome da coluna) ou count(constante) em vez de count(*),
count(*) é a sintaxe para o número padrão de linhas definidas pelo SQL92, que não tem nada a ver com o banco de dados, NULL e não-NULL.
Nota: count(*) conta linhas com valor NULL, enquanto count(nome da coluna) não conta linhas com valor NULL.
Portanto, no futuro, quando você fizer todas as estatísticas e não descartar dados vazios, é melhor usar honestamente contar (*)!!
|