Las bases de datos tienen mucha jerga, y la cardinalidad es una de esas palabras que las personas experimentadas tienden a olvidar que no sabían una vez. Pero si no lo sabes—y toma un tiempo para sentirte realmente cómodo con la cardinalidad, es súper confuso cuando el DBA simplemente lo deja caer en el medio de una oración sin ralentizar. No temas: te tengo, como dicen.Cardinalidad significa dos cosas en las bases de datos. Para nuestros propósitos, uno importa mucho más que el otro. Primero hagamos la simple, y luego profundicemos en la que importa para el rendimiento de las consultas.La definición de cardinalidad que importa mucho para el rendimiento de las consultas es la cardinalidad de los datos. Se trata de cuántos valores distintos hay en una columna.El primer significado de cardinalidad es cuando se está diseñando la base de datos, lo que se denomina modelado de datos. En este sentido, cardinalidad significa si una relación es uno a uno, muchos a uno o muchos a muchos. Así que realmente estás hablando de la cardinalidad de la relación.La definición de diccionario oficial de Cardinality, que no es de base de datos, es matemática: el número de valores en un conjunto. Cuando se aplica a bases de datos, el significado es un poco diferente: es el número de valores distintos en una columna de tabla, en relación con el número de filas de la tabla. Los valores repetidos en la columna no cuentan.Sin embargo, normalmente no hablamos de cardinalidad como un número. Es más común simplemente hablar de cardinalidad» alta «y» baja». Muchos valores distintos son cardinalidad alta; muchos valores repetidos son cardinalidad baja.Imagine una tabla de descripción de producto en una base de datos de comercio electrónico: La columna ProductID
será de alta cardinalidad porque probablemente sea la clave principal de esa tabla, por lo que es totalmente única. Si hay mil filas en la tabla, habrá mil valores ProductID
diferentes. La columna Category
tendrá mucha repetición, y tendrá una cardinalidad baja o media: tal vez 50 o 100 valores diferentes Category
Name
es probablemente una alta cardinalidad, a menos que haya más en esta tabla de lo que parece (como múltiples filas para diferentes colores de productos y otras variaciones).La cardinalidad afecta mucho al rendimiento, porque influye en el plan de ejecución de la consulta. El planificador examinará las estadísticas de columna y las usará para averiguar cuántos valores es probable que coincida una consulta, entre otras cosas. Dependiendo de lo que encuentre, puede usar diferentes planes de ejecución de consultas para intentar obtener el mejor rendimiento. Pero ese es un tema para una publicación de blog diferente, porque se necesita un poco de trabajo para explain.So ahora, la próxima vez que alguien deje caer » alta cardinalidad «en una oración sin pausar, sabes que realmente significan «muchos valores diferentes».»Y ahí lo tienes!
Maybaygiare.org
Blog Network
Maybaygiare.org
Blog Network