114 votes

Qu'est-ce que la cardinalité dans MySQL ?

Qu'est-ce que la cardinalité dans MySQL ? Veuillez l'expliquer dans un langage simple et non technique.

Si le détail d'un index d'une table quelconque affiche la cardinalité d'un champ, disons que group_id comme 11, alors qu'est-ce que ça veut dire ?

132voto

Alexander Torstling Points 7990

Cardinalité maximale : Toutes les valeurs sont uniques

cardinalité minimale : Toutes les valeurs sont identiques

Certaines colonnes sont dites de haute cardinalité parce qu'elles sont soumises à des contraintes (comme unique) qui vous interdisent de mettre la même valeur dans chaque ligne.

La cardinalité est une propriété qui affecte la capacité de regrouper, trier et rechercher des données. C'est donc une mesure importante pour les planificateurs de requêtes dans les BD, c'est une heuristique qu'ils peuvent utiliser pour choisir les meilleurs plans.

12 votes

C'est quoi ce fétichisme pour les grands mots. "Distinction" ferait l'affaire, n'est-ce pas ?

10 votes

@Pacerier : Oui, même si je pense que les personnes travaillant sur les bases de données sont déjà assez familières avec la théorie relationnelle, la théorie des ensembles et les mathématiques. Et ils ont emprunté le terme à la théorie des ensembles : fr.m.wikipedia.org/wiki/Cardinalité

31 votes

@Pacerier, Distinction est un mot plus grand (par 1)

35voto

Kami Points 3181

Wikipedia résume cardinalité en SQL comme suit :

Sur SQL (Structured Query Language), le terme cardinalité fait référence à la unicité des valeurs de données contenues dans une colonne particulière (attribut) d'une base de données tableau . Plus la cardinalité est faible, plus le nombre d'éléments dupliqués dans une colonne est élevé. Ainsi, une colonne avec la cardinalité la plus faible possible aurait la même valeur pour chaque ligne. Les bases de données SQL utilisent la cardinalité pour aider à déterminer le nombre optimal de lignes. plan de requête pour une requête donnée.

29voto

Rhapsody Points 4131

Il s'agit d'une estimation du nombre de valeurs uniques dans l'index.

Pour une table avec une seule colonne de clé primaire, la cardinalité doit normalement être égale au nombre de lignes de la table.

Plus d'informations .

2 votes

Cela devrait être "sera toujours égal à..." et non "devrait normalement être égal à..." !

15voto

Martin Smith Points 174101

Il est essentiellement associé au degré d'unicité des valeurs d'une colonne, comme l'indique l'article de Wikipédia auquel Kami a fait référence.

La raison pour laquelle il est important d'en tenir compte est que cela affecte la stratégie d'indexation. Il y aura peu d'intérêt à indexer une colonne à faible cardinalité avec seulement 2 valeurs possibles car l'index ne sera pas assez sélectif pour être utilisé.

5 votes

Le deuxième paragraphe est important si vous essayez de comprendre quand il est judicieux d'indexer une colonne.

4voto

Aayush Points 31

De manière simple, la cardinalité est le nombre de lignes ou de tuples dans la table. Le nombre de colonnes est appelé "degré".

0 votes

Ce n'est pas vrai - vous pouvez avoir des millions de lignes et une cardinalité de 1 (toutes les valeurs sont identiques) ou de millions (jusqu'au nombre de lignes du tableau si chaque valeur de ligne est unique) !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X