Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 15920|Respuesta: 1

[Fuente] Malentendido de count(0) y count(*) en las sentencias SQL

[Copiar enlace]
Publicado en 10/8/2017 13:29:00 | | |
Recientemente, la función numérica se ha utilizado mucho, y cuando el número a contar es relativamente grande, se descubre que el contar(*) tarda más tiempo y el contar(1) menos.

Algunos documentos incluyen las siguientes declaraciones:

Si tu tabla de datos no tiene una clave primaria, entonces count(1) es más rápido que count(*).  
Si hay una clave primaria, entonces la clave primaria (clave primaria conjunta) también es más rápida que count(*).  
Si tu tabla tiene solo un campo, entonces count(*) es el más rápido  
contar(*) contar(1) Comparar ambos. Lo principal es contar los campos de datos correspondientes a (1).  
Si count(1) es un polyindex, id, entonces debe ser count(1) más rápido. Pero la diferencia es muy pequeña.  
Debido a count(*), el campo se optimiza automáticamente para especificar a. Así que no es necesario contar(?), usar contar(*), SQL te ayudará a completar la optimización

  Detalles del recuento:
count(*) devolverá el número total de todas las filas presentes en la tabla, incluyendo las filas con valor nulo,Sin embargo, el conteo (nombre de la columna) devolverá el número total de todas las filas de la tabla excepto nulo(También se cuentan las columnas con valores por defecto).
nombre de columna distinto, el resultado será el resultado tras eliminar el valor nulo y duplicar los datos


Antes, no sabía que el blog decía que todo el mundo recomendaba usar count(0) y que la eficiencia de las consultas era relativamente alta, etc

Hoy en día, se ha comprobado que usar conteo(0) es un malentendido!!
count(0) La primera columna de las estadísticas no está vacía

No uses number(nombre de columna) ni count(constante) en lugar de count(*),

count(*) es la sintaxis del número estándar de filas definidas por SQL92, que no tiene nada que ver con la base de datos, ni NULLA ni non-NULLA.

Nota: count(*) cuenta filas con valor NULL, mientras que count(nombre de columna) no cuenta filas con valor NULL.

Por lo tanto, en el futuro, cuando hagas todas las estadísticas y no descartes datos vacíos, es mejor usar honestamente el recuento (*)!!








Anterior:La diferencia entre las variables de definición let y var en js
Próximo:jquery implementa tabla para mostrar hasta 10 piezas de datos
Publicado en 10/8/2017 13:54:00 |
impartió                 
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com