O que é cardinalidade no MySQL? Explique em linguagem simples e não técnica.
Se um detalhe de índice de qualquer tabela exibe a cardinalidade de um campo, digamos group_id
11, então o que isso significa?
Cardinalidade máxima: todos os valores são únicos
Cardinalidade mínima: todos os valores são iguais
Algumas colunas são chamadas de colunas de alta cardinalidade porque possuem restrições (como únicas) que proíbem você de colocar o mesmo valor em todas as linhas.
A cardinalidade é uma propriedade que afeta a capacidade de agrupar, classificar e pesquisar dados. É, portanto, uma medida importante para os planejadores de consulta em bancos de dados, é uma heurística que eles podem usar para escolher os melhores planos.
A Wikipedia resume a cardinalidade em SQL da seguinte maneira:
fonte
É uma estimativa do número de valores únicos no índice.
Para uma tabela com uma única coluna de chave primária, a cardinalidade normalmente deve ser igual ao número de linhas na tabela.
Mais informações .
fonte
Está basicamente associado ao grau de exclusividade dos valores de uma coluna de acordo com o artigo da Wikipedia vinculado por Kami.
É importante considerar que isso afeta a estratégia de indexação. Não haverá muito sentido em indexar uma coluna de baixa cardinalidade com apenas 2 valores possíveis, pois o índice não será seletivo o suficiente para ser usado.
fonte
Quanto maior a cardinalidade, melhor é a diferenciação das linhas. A diferenciação ajuda a navegar menos ramos para obter dados.
Portanto, valores de cordinalidade mais altos significam:
fonte
Em termos matemáticos, cardinalidade é a contagem de valores em um conjunto de valores. Um conjunto só pode conter valores únicos. Um exemplo seria o conjunto "A".
Seja o conjunto "A": A = {1,2,3} - a cardinalidade desse conjunto é | 3 |.
Se o conjunto "A" contém 5 valores A = {10,21,33,42,57}, então a cardinalidade é | 5 |.
O que isso significa no contexto do mysql é que a cardinalidade de uma coluna da tabela é a contagem dos valores únicos dessa coluna. Se você estiver observando a cardinalidade de sua coluna de chave primária (por exemplo, table.id), então a cardinalidade dessa coluna lhe dirá quantas linhas aquela tabela contém, já que há um ID único para cada linha na tabela. Você não precisa executar um "COUNT (*)" nessa tabela para descobrir quantas linhas ela tem, simplesmente observe a cardinalidade.
fonte
De forma simples, cardinalidade é o número de linhas ou tuplas dentro da tabela. O número de colunas é chamado de "grau"
fonte
Do manual :
E uma análise da Percona :
fonte