Qu'est-ce que la cardinalité dans MySQL? Veuillez expliquer dans un langage simple et non technique.
Si un détail d'index d'une table affiche la cardinalité d'un champ, par exemple group_id
11, qu'est-ce que cela signifie?
Cardinalité maximale: toutes les valeurs sont uniques
Cardinalité minimale: toutes les valeurs sont identiques
Certaines colonnes sont appelées colonnes à cardinalité élevée car elles ont des contraintes en place (comme unique) vous interdisant de mettre la même valeur dans chaque ligne.
La cardinalité est une propriété qui affecte la capacité à regrouper, trier et rechercher des données. C'est donc une mesure importante pour les planificateurs de requêtes dans les bases de données, c'est une heuristique qu'ils peuvent utiliser pour choisir les meilleurs plans.
Wikipedia résume la cardinalité en SQL comme suit:
la source
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 .
la source
Il est fondamentalement associé au degré d'unicité des valeurs d'une colonne selon l'article Wikipédia lié à par Kami.
Il est important de tenir compte du fait que cela affecte la stratégie d'indexation. Il y aura peu de points d'indexation d'une colonne à faible cardinalité avec seulement 2 valeurs possibles car l'index ne sera pas assez sélectif pour être utilisé.
la source
Plus la cardinalité est élevée, meilleure est la différenciation des lignes. La différenciation permet de parcourir moins de branches pour obtenir des données.
Par conséquent, des valeurs de cordinalité plus élevées signifient:
la source
En termes mathématiques, la cardinalité est le nombre de valeurs dans un ensemble de valeurs. Un ensemble ne peut contenir que des valeurs uniques. Un exemple serait l'ensemble "A".
Soit l'ensemble "A": A = {1,2,3} - la cardinalité de cet ensemble est | 3 |.
Si l'ensemble "A" contient 5 valeurs A = {10,21,33,42,57}, alors la cardinalité est | 5 |.
Ce que cela signifie dans le contexte de mysql est que la cardinalité d'une colonne de table est le nombre de valeurs uniques de cette colonne. Si vous regardez la cardinalité de votre colonne de clé primaire (par exemple, table.id), alors la cardinalité de cette colonne vous indiquera combien de lignes cette table contient, car il y a un ID unique pour chaque ligne de la table. Vous n'avez pas besoin d'effectuer un "COUNT (*)" sur cette table pour savoir combien de lignes elle a, regardez simplement la cardinalité.
la source
D'une manière simple, la cardinalité est le nombre de lignes ou de tuples dans la table. Le nombre de colonnes est appelé "degré"
la source
À partir du manuel :
Et une analyse de Percona :
la source