¿Qué es la cardinalidad en MySQL? Explique en un lenguaje sencillo y no técnico.
Si un detalle de índice de cualquier tabla muestra la cardinalidad de un campo, digamos group_id
11, ¿qué significa eso?
Cardinalidad máxima: todos los valores son únicos
Cardinalidad mínima: todos los valores son iguales
Algunas columnas se denominan columnas de cardinalidad alta porque tienen restricciones (como únicas) que le prohíben poner el mismo valor en cada fila.
La cardinalidad es una propiedad que afecta la capacidad de agrupar, ordenar y buscar datos. Por tanto, es una medida importante para los planificadores de consultas en bases de datos, es una heurística que pueden utilizar para elegir los mejores planes.
Wikipedia resume la cardinalidad en SQL de la siguiente manera:
fuente
Es una estimación del número de valores únicos en el índice.
Para una tabla con una sola columna de clave primaria, la cardinalidad normalmente debe ser igual al número de filas de la tabla.
Más información .
fuente
Básicamente, está asociado con el grado de singularidad de los valores de una columna según el artículo de Wikipedia vinculado por Kami.
Por qué es importante tenerlo en cuenta es que afecta la estrategia de indexación. No tendrá mucho sentido indexar una columna de cardinalidad baja con solo 2 valores posibles, ya que el índice no será lo suficientemente selectivo como para ser utilizado.
fuente
Cuanto mayor sea la cardinalidad, mejor será la diferenciación de filas. La diferenciación ayuda a navegar por menos sucursales para obtener datos.
Por lo tanto, valores de cordinalidad más altos significan:
fuente
En términos matemáticos, la cardinalidad es el recuento de valores en un conjunto de valores. Un conjunto solo puede contener valores únicos. Un ejemplo sería el conjunto "A".
Sea el conjunto "A": A = {1,2,3} - la cardinalidad de ese conjunto es | 3 |.
Si el conjunto "A" contiene 5 valores A = {10,21,33,42,57}, entonces la cardinalidad es | 5 |.
Lo que eso significa en el contexto de mysql es que la cardinalidad de una columna de la tabla es el recuento de los valores únicos de esa columna. Si está mirando la cardinalidad de su columna de clave principal (por ejemplo, table.id), entonces la cardinalidad de esa columna le dirá cuántas filas contiene esa tabla, ya que hay una ID única para cada fila en la tabla. No tiene que realizar un "COUNT (*)" en esa tabla para averiguar cuántas filas tiene, simplemente mire la cardinalidad.
fuente
De manera simple, la cardinalidad es el número de filas o tuplas dentro de la tabla. El número de columnas se denomina "grado"
fuente
Del manual :
Y un análisis de Percona :
fuente