1. Was ist die Kardinalität? Wenn dieser Indextyp eindeutig ist, dann ist die Kardinalität = Anzahl der Zeilen. Wenn diese Spalte das Geschlecht enthält und der Aufzählungstyp nur männlich und weiblich hat, dann ist ihre Kardinalität 2 Je höher die Kardinalität, desto wertvoller ist die Spalte für eine Indizierung. Der MySQL-Ausführungsplan wählt Indizes auch basierend auf der Kardinalität aus. Die Kardinalität der einzelnen Spalten der Tabelle kann wie folgt angezeigt werden. Nehmen wir dieses klassische Beispiel: 2. Wann aktualisiert InnoDB die Kardinalität? 3. Die Basiszahl wird geschätzt Eine Aktualisierung der Basisnummer erfolgt nicht in Echtzeit! Und es handelt sich um einen durch Stichproben geschätzten Wert! Die Formel für die Basis ist möglicherweise nicht wichtig. Es ist wichtig zu wissen, dass es sich um eine Schätzung handelt, die durch die zufällige Auswahl von Datenseiten berechnet wird. Und die Anzahl der zufällig ausgewählten Seiten kann durch den Parameter innodb_stats_persistent_sample_pages festgelegt werden, der Standardwert ist 20.
4. Persistente Kardinalität Mit dem Parameter innodb_stats_persistent können Sie steuern, ob die Kardinalität beibehalten wird. Die Standardeinstellung ist deaktiviert. Natürlich können Sie STATS_PERSISTENT=1 für eine einzelne Tabelle festlegen und ihr innodb_stats_persistent wird automatisch aktiviert. Der Vorteil der Aktivierung besteht darin, dass dieser Wert beim Neustart von MySQL nicht neu berechnet wird, was den Neustartvorgang beschleunigt. 5. Wie kann ich die Basis aktiv aktualisieren? Durch Ausführen des folgenden SQL wird InnoDB dazu veranlasst, die Kardinalität zu aktualisieren (auch wenn Sie sich nicht darüber im Klaren sind, dass die Kardinalität aktualisiert wird). Versuchen Sie also, eine Zeit mit geringer Geschäftsspitze zu wählen Tabelle Tabellenname analysieren; Wenn die Anzahl der Stichproben zu gering ist, wird die berechnete Kardinalität extrem falsch sein. Dies führt höchstwahrscheinlich dazu, dass der MySQL-Optimierer den falschen Index auswählt. Hier können Sie den Wert entsprechend erhöhen. Wenn Sie den Wert jedoch zu stark erhöhen, kann es sein, dass ANALYZE TABLE langsam ausgeführt wird. Umgekehrt läuft ANALYZE TABLE zu langsam. Sie können den Wert des Parameters innodb_stats_persistent_sample_pages entsprechend anpassen. Dies kann jedoch zu einer ungenauen Kardinalitätsberechnung führen.
siehe: https://dev.mysql.com/doc/refman/5.7/en/innodb-persistent-stats.html https://dev.mysql.com/doc/refman/5.7/en/innodb-analyze-table-complexity.html Oben finden Sie eine kurze Analyse der Details der MySQL-Kardinalitätsstatistik. Weitere Informationen zu MySQL-Kardinalitätsstatistiken finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung des Fortschrittsbalkens beim Laden von Webseiten (empfohlen)
>>: Lösung für das Problem des unzureichenden Speicherressourcenpools des Docker-Servers
vertical-align wird hauptsächlich verwendet, um d...
Vorwort In diesem Artikel werden hauptsächlich di...
Installieren Sie die Zip-Dekomprimierungsfunktion...
Inhaltsverzeichnis Drosselung und Anti-Shake Konz...
1. Laden Sie die VirtualBox-Software herunter und...
Natürlich gibt es auch viele Leute, die die gegent...
Inhaltsverzeichnis Fallbeispiel Lösung des Proble...
Hintergrund Wir verwenden Chrome Dev Tools häufig...
Inhaltsverzeichnis 1. Was ist Promise? 2. Warum g...
1. E-Commerce-Symbole 2. Symbol Süßigkeiten 2 3. ...
Wenn Browser-Anbieter die Standards umgehen und ei...
Inhaltsverzeichnis 1. Zwei setState, wie oft soll...
Flappy Bird ist ein sehr einfaches kleines Spiel,...
wie Für LIKE ist eine Übereinstimmung der gesamte...
Vorwort In diesem Artikel wird das Installationst...