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 (*)!!
|