2017-04-12 5 views
0

Ich habe eine Tabelle namens Transaktion in meiner Datenbank mit zwei Indizes, wie in der Abbildung unten gezeigt. Manchmal zeigt der nicht eindeutige Index (account_id) eine andere Kardinalität. Zum Beispiel zeigen manchmal die zwei Indizes dieselbe Kardinalität, was nicht der Fall sein sollte, da der nicht eindeutige Index viele Duplikate im Vergleich zu PRIMARY aufweist, der nur eindeutige Werte aufweist. Bis jetzt musste ich DROP und dann den nicht eindeutigen Index neu erstellen, um das temporäre Problem zu lösen. Was könnte das Problem sein?nicht eindeutige Indizes Kardinalität

enter image description here

Antwort

1

Es gibt kein Problem. Zitiert die reference manual:

Cardinality

eine Schätzung der Anzahl der eindeutigen Werte im Index. Dies wird durch Ausführen von ANALYZE TABLE oder myisamchk -a aktualisiert. Die Kardinalität wird basierend auf Statistiken gezählt, die als Ganzzahlen gespeichert sind. Daher ist der Wert selbst für kleine Tabellen nicht unbedingt exakt. Je höher die Kardinalität, desto größer die Wahrscheinlichkeit, dass MySQL den Index bei Joins verwendet.

Da der Wert in Cardinality nur eine Schätzung ist, sollten Sie nicht erwarten, dass es 100% genau ist.

+0

danke für diese Info. Aber sehen Sie manchmal die Spalte mit der nicht eindeutigen Spalte neigt dazu, ihre Werte um eine Zahl zu erhöhen, lässt 13 für nur bestimmte Zeilen in der Tabelle und ich versuche, eine Lösung zu finden, warum dies passiert? – lil

Verwandte Themen