1. Die Bedeutung persistenter statistischer Informationen: Statistiken werden verwendet, um MySQL bei der Generierung von Ausführungsplänen zu unterstützen. Die Genauigkeit des Ausführungsplans wirkt sich direkt auf die Effizienz der SQL-Ausführung aus. Die vorherigen Statistiken sind weg. Wenn also die SQL-Anweisung kommt, sammelt MySQL die Statistiken und generiert dann die Ausführung der SQL-Anweisung. planen. Wenn Sie die Statistiken beim Herunterfahren von MySQL speichern können, müssen Sie sie beim Starten nicht erneut erfassen. Hilft, die Effizienz zu verbessern. Zweitens ist die Genauigkeit der statistischen Informationen ebenso wichtig: Im ersten Abschnitt haben wir die Bedeutung persistenter Statistiken erläutert. Wir gehen davon aus, dass Statistiken nützlich und genau sind. Wenn die Statistiken selbst Es ist veraltet. Wenn die Statistiken beispielsweise berechnet werden, wenn die Tabelle nur 100 Zeilen enthält, ist der vollständige Tabellenscan häufig kostengünstiger. Wolltuch! Jetzt hat die Anzahl der Zeilen in der Tabelle 1 Million erreicht. Offensichtlich führen solche veralteten statistischen Informationen zu Leistungskatastrophen, sodass auch die Aktualität statistischer Informationen sind gleichermaßen wichtig. Wann aktualisiert MySQL Statistiken automatisch? Standardmäßig wird die Tabelle aktualisiert, wenn 10 % der Daten geändert wurden. 3. MySQLs Verarbeitung statistischer Informationen: MySQL bietet Lösungen für beide oben genannten Probleme und beide können durch eine einfache Konfiguration gelöst werden. 1. Ob statistische Informationen in MySQL gespeichert werden, kann über den Parameter innodb_stats_persistent gesteuert werden 2. In Bezug auf die Aktualität statistischer Informationen verwendet MySQL den Parameter innodb_stats_auto_recalc, um zu steuern, ob automatisch aktualisiert werden soll 3. Für die Genauigkeit statistischer Informationen steuert MySQL Aktualisierungen über den Parameter innodb_stats_persistent_sample_pages Die Anzahl der Beispielseiten, die für die statistische Informationsstichprobe verwendet werden. 4. Statistiken manuell aktualisieren: MySQL aktualisiert Statistiken manuell mithilfe der Anweisung „Analyze Table“ 5. Überprüfen Sie, wann die Statistiken der Tabelle aktualisiert werden: MySQL zeichnet Statistiken in den beiden Tabellen mysql.innodb_table_stats und mysql.innodb_index_stats auf. mysql.innodb_table_stats zeichnet Statistiken nach Tabelle auf mysql> wähle * aus innodb_table_stats; +-----------------+-------------------------+---------------------+--------+----------------------+--------------------------+ | Datenbankname | Tabellenname | letztes Update | Anzahl Zeilen | Clusterindexgröße | Summe anderer Indexgrößen | +-----------------+-------------------------+---------------------+--------+----------------------+--------------------------+ | fdb | auth_group | 10.08.2017 14:36:40 | 0 | 1 | 1 | | fdb | auth_group_permissions | 10.08.2017 14:36:41 | 0 | 1 | 2 | | fdb | auth_permission | 10.08.2017 14:36:41 | 30 | 1 | 1 | | fdb | auth_user | 10.08.2017 14:36:41 | 0 | 1 | 1 | | fdb | auth_user_groups | 10.08.2017 14:36:41 | 0 | 1 | 2 | | fdb | auth_user_user_permissions | 10.08.2017 14:36:41 | 0 | 1 | 2 | | fdb | cninfo_company | 10.08.2017 14:36:58 | 4996 | 161 | 6 | | fdb | csindex_indexdetail | 17.09.2017 14:04:27 | 0 | 1 | 0 | | fdb | csindex_indexoverview | 01.09.2017 12:44:18 | 11 | 1 | 0 | | fdb | django_admin_log | 10.08.2017 14:36:47 | 0 | 1 | 2 | | fdb | django_content_type | 10.08.2017 14:36:47 | 10 | 1 | 1 | | fdb | django_migrations | 04.09.2017 14:04:09 | 37 | 1 | 0 | | fdb | django_session | 10.08.2017 14:36:47 | 0 | 1 | 1 | | fdb | glod_glodprice | 10.08.2017 14:36:48 | 2271 | 10 | 0 | | fdb | pbc_moneysupply | 10.08.2017 14:37:08 | 78 | 1 | 0 | | fdb | shibor_shiborrate | 10.08.2017 14:37:18 | 2711 | 14 | 0 | | fdb | sse_marketoverview | 15.08.2017 16:06:12 | 0 | 1 | 0 | | mysql | gtid_executed | 06.09.2017 11:02:14 | 2 | 1 | 0 | | sys | sys_config | 10.08.2017 12:19:06 | 6 | 1 | 0 | | tempdb | Person | 14.09.2017 11:18:15 | 1 | 1 | 0 | | tmp | t | 15.08.2017 11:06:18 | 2 | 1 | 0 | +-----------------+-------------------------+---------------------+--------+----------------------+--------------------------+ 21 Zeilen im Satz (0,00 Sek.) Die Bedeutung der einzelnen Spalten: database_name Der Name der Datenbank, in der sich die Tabelle befindet table_name Tabellenname last_update Der Zeitpunkt der letzten Aktualisierung n_rows Die Anzahl der Zeilen in der Tabelle clustered_index_size Die Größe des Primärschlüssels sum_of_other_index_sizes Die Größe aller sekundären Indizes 6. Einige Erfahrungen im Prozess der Tabellenanalyse: Wenn wir die Explan-Anweisung verwenden, um den SQL-Ausführungsplan anzuzeigen, stellen wir fest, dass der Plan nicht genau ist, was hauptsächlich an veralteten statistischen Informationen liegt. Manchmal müssen Sie eine Analysetabelle ausführen, um den Ausführungsplan neu zu generieren. Manchmal stellen Sie jedoch möglicherweise fest, dass die Neuerstellung des Ausführungsplans sinnlos ist. SQL funktioniert immer noch nicht richtig. Der wahrscheinlichste Grund ist, dass die Anzahl der Beispielseiten beim Generieren des Ausführungsplans zu gering ist. Der Wert dieses Parameters sollte nicht zu groß sein, da sonst die Ausführung der Anweisung zur Tabellenanalyse sehr lange dauert. VII. Weitere Hinweise: Das oben erwähnte MySQL bezieht sich tatsächlich auf die Innodb-Engine. Oben finden Sie eine ausführliche Erläuterung der persistenten MySQL-Statistiken. Weitere Informationen zu persistenten MySQL-Statistiken finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Docker nginx implementiert einen Host zum Bereitstellen mehrerer Sites
LocalStorage speichert Boolesche Werte Als ich he...
Heute Wählen Sie * aus Tabellenname, wobei to_day...
Löschen einer Datei anhand ihrer Inode-Nummer Ver...
Inhaltsverzeichnis 1. Doppelte Anfragen storniere...
Vorwort Also habe ich diesen Blog geschrieben. Di...
Lösung zum Vergessen des MySQL-Passworts: [root@l...
1. Es muss die InnoDB-Speicher-Engine verwendet w...
Beschreibung der HTML-Meta-Viewport-Attribute Was...
MySQL verfügt über die folgenden Protokolle: Fehl...
Inhaltsverzeichnis Vorwort Docker-Datei Was ist e...
Dieser Artikel stellt Jenkins+Maven+SVN+Tomcat üb...
Nginx mit Docker bereitstellen, so einfach ist da...
Inhaltsverzeichnis 1. Requisiten Übergeordnetes E...
Wenn Sie nach der Kompilierung und Installation v...
SQL implementiert Additions-, Subtraktions-, Mult...