Maybaygiare.org

Blog Network

What Is Cardinality in a Database?

bases de dados têm um monte de jargão, e cardinalidade é uma daquelas palavras que as pessoas experientes tendem a esquecer que eles não sabiam uma vez. Mas se você não sabe—e leva um tempo para realmente se sentir confortável com a cardinalidade—é super confuso quando a DBA apenas a deixa cair no meio de uma frase sem abrandar! Não temas, já te tenho, como dizem.A cardinalidade significa duas coisas nas bases de dados. Para os nossos propósitos, um importa muito mais do que o outro. Vamos fazer o simples primeiro, e depois digitar o que importa para o desempenho da consulta.A definição de cardinalidade que importa muito para o desempenho da consulta é a cardinalidade de dados. Isto é tudo sobre quantos valores distintos estão em uma coluna.O primeiro significado de cardinalidade é quando você está projetando a base de dados—o que é chamado de modelagem de dados. Neste sentido, cardinalidade significa se um relacionamento é um-para-um, muitos-para-um, ou muitos-para-muitos. Então estás mesmo a falar da cardinalidade da relação.A definição oficial do dicionário de cardinalidade, Não-base de dados, é matemática.: o número de valores num conjunto. Quando aplicado a bases de dados, o significado é um pouco diferente: é o número de valores distintos em uma coluna de tabela, em relação ao número de linhas na tabela. Os valores repetidos na coluna não contam.Não costumamos falar de cardinalidade como um número. É mais comum falar de cardinalidade” alta” e “baixa”. Um monte de valores distintos é alta cardinalidade; um monte de valores repetidos é baixa cardinalidade.Imagine uma tabela de descrição de produtos numa base de dados de comércio electrónico:theProductID column is going to be high-cardinality because it’s probably the primary key of that table, so it’s totally unique. Se houver mil linhas na tabela, haverá mil diferentes valores ProductID. A coluna”Categoryterá muita repetição, e será baixa ou média cardinalidade: talvez 50 ou 100 diferentes Category valores. Name é provavelmente alta cardinalidade, a menos que haja mais nesta tabela do que o olho (como várias linhas para diferentes cores do produto e outras variações).A cardinalidade afeta muito o desempenho, porque influencia o plano de execução da consulta. O planejador irá examinar as estatísticas de colunas e usá-las para descobrir quantos valores uma consulta é susceptível de corresponder, entre outras coisas. Dependendo do que encontrar, ele pode usar diferentes planos de execução de consultas para tentar obter o melhor desempenho. Mas isso é um tópico para um post diferente, porque é preciso um pouco de trabalho para explain.So agora, da próxima vez que alguém cair “alta cardinalidade” em uma frase sem pausar, você sabe que eles realmente significam “muitos valores diferentes.”E aí está!

Deixe uma resposta

O seu endereço de email não será publicado.