Was ist Kardinalität in MySQL? Bitte erklären Sie in einfacher, nicht technischer Sprache.
Wenn ein Indexdetail einer Tabelle die Kardinalität eines Feldes mit der group_id
Bezeichnung 11 anzeigt , was bedeutet das dann?
Maximale Kardinalität: Alle Werte sind eindeutig
Min. Kardinalität: Alle Werte sind gleich
Einige Spalten werden als Spalten mit hoher Kardinalität bezeichnet, da sie Einschränkungen aufweisen (wie z. B. eindeutig), die verhindern, dass Sie in jede Zeile denselben Wert einfügen.
Kardinalität ist eine Eigenschaft, die sich auf die Fähigkeit auswirkt, Daten zu gruppieren, zu sortieren und zu suchen. Es ist daher eine wichtige Messung für die Abfrageplaner in DBs. Es ist eine Heuristik, mit der sie die besten Pläne auswählen können.
Wikipedia fasst die Kardinalität in SQL wie folgt zusammen:
quelle
Es ist eine Schätzung der Anzahl eindeutiger Werte im Index.
Bei einer Tabelle mit einer einzelnen Primärschlüsselspalte sollte die Kardinalität normalerweise der Anzahl der Zeilen in der Tabelle entsprechen.
Weitere Informationen .
quelle
Dies hängt im Wesentlichen mit dem Grad der Eindeutigkeit der Werte einer Spalte gemäß dem von Kami verlinkten Wikipedia-Artikel zusammen.
Es ist wichtig zu berücksichtigen, dass dies Auswirkungen auf die Indexierungsstrategie hat. Es wird wenig Sinn machen, eine Spalte mit niedriger Kardinalität mit nur 2 möglichen Werten zu indizieren, da der Index nicht selektiv genug ist, um verwendet zu werden.
quelle
Je höher die Kardinalität, desto besser ist die Differenzierung der Zeilen. Durch die Differenzierung können weniger Zweige navigiert werden, um Daten abzurufen.
Höhere Cordinalitätswerte bedeuten daher:
quelle
In mathematischen Begriffen ist Kardinalität die Anzahl der Werte in einer Reihe von Werten. Ein Satz kann nur eindeutige Werte enthalten. Ein Beispiel wäre die Menge "A".
Die Menge "A" sei: A = {1,2,3} - die Kardinalität dieser Menge ist | 3 |.
Wenn die Menge "A" 5 Werte A = {10,21,33,42,57} enthält, ist die Kardinalität | 5 |.
Im Kontext von MySQL bedeutet dies, dass die Kardinalität einer Tabellenspalte die Anzahl der eindeutigen Werte dieser Spalte ist. Wenn Sie sich die Kardinalität Ihrer Primärschlüsselspalte (z. B. table.id) ansehen, gibt die Kardinalität dieser Spalte an, wie viele Zeilen diese Tabelle enthält, da für jede Zeile in der Tabelle eine eindeutige ID vorhanden ist. Sie müssen für diese Tabelle kein "COUNT (*)" ausführen, um herauszufinden, wie viele Zeilen sie enthält. Schauen Sie sich einfach die Kardinalität an.
quelle
Kardinalität ist auf einfache Weise die Anzahl der Zeilen oder Tupel in der Tabelle. Die Anzahl der Spalten wird als "Grad" bezeichnet.
quelle
Aus dem Handbuch :
Und eine Analyse von Percona :
quelle