Bad Index
Der Fall, dass Sie vorschlagen, für einen B + Baum ein schlechtes ist. Eine Kardinalität von 10 bedeutet only 10 of the 1 million values are unique. Eigentlich ist es nicht nur schlecht für einen B + Baum, es ist generell ein schlechter Index. Basierend auf diesem Index werden Sie im Durchschnitt mit einer Untermenge von ca. 100.000 Werte, die Sie entweder durchsehen oder einen anderen Wert verwenden müssen, um weiter zu filtern.
B + Baum Eigenschaften
die Struktur des resultierenden Baum Bezüglich gibt es einige Dinge im Auge zu behalten hier:
- Ein Knoten kann nicht beliebig viele Daten enthalten.
- Einsätze können Splits erfordern, wenn der Blattknoten
- Gelegentlich wird die Aufteilung eines Blattknotens erfordert Spaltung des nächsthöheren Knoten
- Im schlimmsten Fall voll ist die Spaltung der alle Kaskade kann up Weg zu dem Wurzelknoten
https://www.percona.com/files/presentations/percona-live/london-2011/PLUK2011-b-
- Blätter sind als doppelt verkettete Liste verknüpft.
- Blattknoten werden zusammen als doppelt verknüpfte Liste verknüpft
- [...]
- gesamten Baum auf allen
die höheren Knoten abgetastet werden kann
https://www.percona.com/files/presentations/percona-live/london-2011/PLUK2011-b-
ohne den Besuch
Erwartung
Wenn Sie viele Daten mit Schlüsseln einfügen, die mehr oder weniger alle zur selben Äquivalenzklasse gehören, würde ich einen Baum erwarten, der nicht viel hilft. Die 10 Schlüssel sind möglicherweise nur im Stammknoten vorhanden, und alle tieferen Daten im Baum werden nur unsortiert (da nichts mehr übrig ist, um sie zu sortieren).
Aufgrund der Tatsache, dass die Blätter doppelt verknüpfte Listen sind, sind Sie im Wesentlichen mit dem, was ich am Anfang geschrieben habe: Sie müssen eine große Teilmenge der Werte durchlaufen.Bezüglich des gegebenen Indexes musste dies erwartet werden und der B + Baum könnte sich angesichts der Umstände gut entwickeln (eine Liste ist in Ordnung, um alle Daten durchzugehen).
Eigentlich geht das eine Abstraktion tiefer: Die Blätter sind doppelt verknüpft, aber es gibt mehrere Werte in jedem Blatt (Daten oder Link zu PK). Trotzdem sind diese auch in einer Liste, wenn Sie also einfach alles durchqueren, macht das keinen großen Unterschied.
Prüfungs InnoDB Raum
Bitte beachten Sie, dass Sie auch untersuchen können, was MySQL ist wirklich zu bauen. Es gibt Werkzeuge, die integrierten Indexdatenstrukturen zu überprüfen, siehe zum Beispiel
Danke Rick. Das scheint einen Sinn zu ergeben. Haben Sie irgendwelche Hinweise - im Handbuch oder woanders? – Vikk
Ach, nein. Es gibt viele Webseiten in der Dokumentation, aber sie sind in der Regel präziser und weniger praktisch. Dies ist Teil meines gesammelten Wissens darüber, wie die Indexierung funktioniert. Ich versuche es auf eine "brauchbare" Weise umzuformulieren. Ich habe wiederholt die 20% (10% bis 30%) nachgewiesen. 5.7 hat das "Kostenmodell" für die Entscheidung über den Abfrageplan neu gestaltet, läuft aber immer noch auf das hinaus, was ich gesagt habe. –