Vorwort Dieser Artikel stellt hauptsächlich die relevanten Inhalte zur MySQL-Speichernutzung vor und gibt sie zu Ihrer Information und zum Lernen weiter. Werfen wir einen Blick auf die ausführliche Einführung. Verwendete Version: MySQL 5.7 Offizielle Dokumentation Im performance_schema zeichnet die folgende Tabelle die Speichernutzung auf mysql> Tabellen wie „%memory%summary%“ anzeigen; +-------------------------------------------------+ | Tabellen_im_Leistungsschema (%Speicher%Zusammenfassung%) | +-------------------------------------------------+ | Speicherzusammenfassung_nach_Konto_nach_Ereignisname | | Speicherzusammenfassung_nach_Host_nach_Ereignisname | | Speicherzusammenfassung_nach_Thread_nach_Ereignisname | | Speicherzusammenfassung_nach_Benutzer_nach_Ereignisname | | Speicherzusammenfassung_global_nach_Ereignisname | +-------------------------------------------------+ Jede Speicherstatistiktabelle verfügt über die folgenden Statistikspalten: * COUNT_ALLOC, COUNT_FREE: Die Gesamtzahl der Aufrufe der Speicherzuweisungs- und Speicherfreigabefunktionen * SUM_NUMBER_OF_BYTES_ALLOC, SUM_NUMBER_OF_BYTES_FREE: Gesamtgröße der zugewiesenen und freigegebenen Speicherblöcke in Bytes * CURRENT_COUNT_USED: Dies ist eine Komfortspalte, gleich COUNT_ALLOC - COUNT_FREE * CURRENT_NUMBER_OF_BYTES_USED: Die statistische Größe der aktuell zugewiesenen, aber nicht freigegebenen Speicherblöcke. Dies ist eine praktische Spalte, die gleich SUM_NUMBER_OF_BYTES_ALLOC - SUM_NUMBER_OF_BYTES_FREE ist. * LOW_COUNT_USED, HIGH_COUNT_USED: Entspricht den niedrigen und hohen Grenzwerten der Spalte CURRENT_COUNT_USED * LOW_NUMBER_OF_BYTES_USED, HIGH_NUMBER_OF_BYTES_USED: entsprechen den niedrigen und hohen Grenzwerten der Spalte CURRENT_NUMBER_OF_BYTES_USED Die Anweisung TRUNCATE TABLE ist für Speicherstatistiktabellen zulässig. Bei Verwendung der Truncate-Anweisung tritt das folgende Verhalten auf: * Normalerweise setzt der Truncate-Vorgang die Basisdaten der statistischen Informationen zurück (d. h., er löscht die vorherigen Daten), ändert jedoch nicht den Speicherzuweisungsstatus des aktuellen Servers. Mit anderen Worten: Durch das Kürzen der Speicherstatistik wird der zugewiesene Speicher nicht freigegeben. * Setzen Sie die Spalten COUNT_ALLOC und COUNT_FREE zurück und starten Sie die Zählung neu (das entspricht der Verwendung der zurückgesetzten Werte als Basisdaten für die Speicherstatistik). * Die Spalten SUM_NUMBER_OF_BYTES_ALLOC und SUM_NUMBER_OF_BYTES_FREE werden ähnlich wie die Spalten COUNT_ALLOC und COUNT_FREE zurückgesetzt. * LOW_COUNT_USED und HIGH_COUNT_USED werden auf den Spaltenwert CURRENT_COUNT_USED zurückgesetzt * LOW_NUMBER_OF_BYTES_USED und HIGH_NUMBER_OF_BYTES_USED werden auf den Spaltenwert CURRENT_NUMBER_OF_BYTES_USED zurückgesetzt. * Wenn Sie „truncate“ darüber hinaus auf den abhängigen Konten-, Host-, Benutzertabellen oder memory_summary_global_by_event_name-Tabellen ausführen, die nach Konto, Host, Benutzer oder Thread klassifiziert sind, wird die „truncate“-Anweisung implizit auf diesen Speicherstatistiktabellen ausgeführt. Einfach ausgedrückt kann der Speicher basierend auf Benutzer, Host, Thread, Konto und globalen Dimensionen überwacht werden. Gleichzeitig formatiert das Bibliothekssystem diese Tabellen weiter, sodass Benutzer den Speicheraufwand jedes Objekts einfach erkennen können: mysql> wähle event_name,current_alloc aus sys.memory_global_by_current_bytes Limit 10; +--------------------------------------------------------------------------------+---------------+ | Ereignisname | aktuelle_Zuweisung | +--------------------------------------------------------------------------------+---------------+ | Speicher/Leistungsschema/Ereignisaussagen_Verlauf_lang | 13,66 MiB | | Speicher/Performance-Schema/Events_Statements_History_long.sqltext | 9,77 MiB | | Speicher/Performance-Schema/Events_Statements_History_long.tokens | 9,77 MiB | | Speicher/Performance-Schema/Events_Statements_Summary_by_Digest.Tokens | 9,77 MiB | | Speicher/Leistungsschema/Tabellenhandles | 9,06 MiB | | Speicher/Leistungsschema/Ereigniserklärungen_Zusammenfassung_nach_Thread_nach_Ereignisname | 8,67 MiB | | Speicher/SQL/String::Wert | 6,02 MiB | | Speicher/Leistungsschema/Speicherzusammenfassung nach Thread nach Ereignisname | 5,62 MiB | | Speicher/Leistungsschema/Events_Statements_Summary_by_Digest | 4,88 MiB | | Speicher/SQL/Tabelle | 4,35 MiB | +--------------------------------------------------------------------------------+---------------+ Standardmäßig zählt performance_schema nur den Speicheroverhead von performance_schema. Abhängig von Ihrer MySQL-Installation können die Codebereiche performance_schema, sql, client, innodb, myisam, csv, memory, blackhole, archive, partition und andere umfassen. Überprüfen Sie, ob die InnoDB-bezogene Speicherüberwachung aktiviert ist. Sie ist standardmäßig nicht aktiviert. mysql> AUSWÄHLEN * VON performance_schema.setup_instruments -> WO NAME WIE '%memory%'; +-------------------------------------------------------------------------------------------------+---------+---------+ | NAME | AKTIVIERT | ZEITGESTEUERT | +-------------------------------------------------------------------------------------------------+---------+---------+ | Speicher/Leistungsschema/Mutex-Instanzen | JA | NEIN | | Speicher/Leistungsschema/RW-Lock-Instanzen | JA | NEIN | | Speicher/Leistungsschema/Cond_Instanzen | JA | NEIN | | Speicher/Leistungsschema/Dateiinstanzen | JA | NEIN | | Speicher/Leistungsschema/Socket-Instanzen | JA | NEIN | | Speicher/Leistungsschema/Metadatensperren | JA | NEIN | | Speicher/Leistungsschema/Dateihandle | JA | NEIN | | Speicher/Leistungsschema/Konten | JA | NEIN | | Speicher/Leistungsschema/Ereigniswartezeitenzusammenfassung_nach_Konto_nach_Ereignisname | JA | NEIN | | Speicher/Leistungsschema/Ereignisstufenzusammenfassung_nach_Konto_nach_Ereignisname | JA | NEIN | | Speicher/Leistungsschema/Ereigniserklärungen_Zusammenfassung_nach_Konto_nach_Ereignisname | JA | NEIN | | Speicher/Leistungsschema/Ereignistransaktionszusammenfassung nach Konto nach Ereignisname | JA | NEIN | | Speicher/Leistungsschema/Speicherzusammenfassung_nach_Konto_nach_Ereignisname | JA | NEIN | | Speicher/Performanceschema/Events_Stages_Summary_Global_by_Event_Name | JA | NEIN | | Speicher/Performanceschema/Events_Statements_Summary_Global_by_Event_Name | JA | NEIN | | Speicher/Leistungsschema/Speicherzusammenfassung_global_nach_Ereignisname | JA | NEIN | | Speicher/Leistungsschema/Hosts | JA | NEIN | | Speicher/Leistungsschema/Ereigniswartezusammenfassung_nach_Host_nach_Ereignisname | JA | NEIN | | Speicher/Leistungsschema/Ereignisstufenzusammenfassung_nach_Host_nach_Ereignisname | JA | NEIN | | Speicher/Leistungsschema/Ereigniserklärungen_Zusammenfassung_nach_Host_nach_Ereignisname | JA | NEIN | | Speicher/Leistungsschema/Ereignistransaktionszusammenfassung_nach_Host_nach_Ereignisname | JA | NEIN | Sie können den Umfang durch Bedingungen einschränken: mysql> AUSWÄHLEN * VON performance_schema.setup_instruments WO NAME WIE '%memory/innodb%'; +----------------------------------------------+---------+-------+ | NAME | AKTIVIERT | ZEITGESTEUERT | +----------------------------------------------+---------+-------+ | Speicher/InnoDB/adaptiver Hash-Index | NEIN | NEIN | | Speicher/Innodb/buf_buf_pool | NEIN | NEIN | | Speicher/Innodb/dict_stats_bg_recalc_pool_t | NEIN | NEIN | | Speicher/Innodb/dict_stats_index_map_t | NEIN | NEIN | | Speicher/Innodb/dict_stats_n_diff_on_level | NEIN | NEIN | | Speicher/InnoDB/Sonstiges | NEIN | NEIN | | Speicher/Innodb/Row_log_buf | NEIN | NEIN | | Speicher/Innodb/Row_merge_sort | NEIN | NEIN | | Speicher/InnoDB/Std | NEIN | NEIN | | Speicher/innodb/trx_sys_t::rw_trx_ids | NEIN | NEIN | Führen Sie eine Speicherüberwachung für alle möglichen Objekte durch. Daher sind folgende Einstellungen erforderlich: mysql> update performance_schema.setup_instruments set enabled = 'yes', wobei der Name etwa 'memory%' ist; Abfrage OK, 306 Zeilen betroffen (0,00 Sek.) Übereinstimmende Zeilen: 376 Geändert: 306 Warnungen: 0 Diese Methode zum Online-Öffnen der Speicherstatistik ist jedoch nur für neu hinzugefügte Speicherobjekte gültig und die Einstellungen werden nach einem Neustart der Datenbank wiederhergestellt: Wenn Sie Speicherstatistiken für Objekte im globalen Lebenszyklus durchführen möchten, müssen Sie dies in der Konfigurationsdatei festlegen und anschließend neu starten: [mysqld] Leistungsschema-Instrument = "Speicher/% = GEZÄHLT" Dieselben zugrunde liegenden Daten können mithilfe der Tabelle „memory_global_by_current_bytes“ unter der Sys-Bibliothek abgefragt werden, die die aktuelle Speichernutzung innerhalb des globalen Servers, aufgeschlüsselt nach Zuordnungstyp, anzeigt. mysql> AUSWÄHLEN * VON sys.memory_global_by_current_bytes WO Ereignisname LIKE 'memory/innodb/buf_buf_pool'\G *************************** 1. Reihe *************************** Ereignisname: Speicher/InnoDB/Buf_Buf_Pool aktuelle_Anzahl: 1 current_alloc: 131,06 MiB current_avg_alloc: 131,06 MiB hohe_Anzahl: 1 high_alloc: 131,06 MiB high_avg_alloc: 131,06 MiB Diese Systemschemaabfrage aggregiert den aktuell zugewiesenen Speicher nach dem Codebereich current_alloc(): mysql> SELECT SUBSTRING_INDEX(Ereignisname,'/',2) AS Codebereich, sys.format_bytes(SUMME(aktuelle_Zuweisung)) AS current_alloc VON sys.x$memory_global_by_current_bytes GROUP BY SUBSTRING_INDEX(Ereignisname,'/',2) ORDER BY SUM(aktuelle_Zuweisung) DESC; +-----------------------------+------------------+ | Codebereich | aktuelle_Zuweisung | +-----------------------------+------------------+ | Speicher/InnoDB | 843,24 MiB | | Speicher/Leistungsschema | 81,29 MiB | | Speicher/Mysys | 8,20 MiB | | Speicher/SQL | 2,47 MiB | | Speicher/Speicher | 174,01 KiB | | Speicher/Myisam | 46,53 KiB | | Speicher/Schwarzes Loch | 512 Bytes | | Speicher/föderiert | 512 Bytes | | Speicher/CSV | 512 Bytes | | Speicher/vio | 496 Bytes | +-----------------------------+------------------+ Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
<<: So setzen Sie Ihr Linux-Passwort zurück, wenn Sie es verloren haben
Perfekte Lösung für den schwarzen VMware-Bildschi...
Vorwort In der Front-End-Entwicklung müssen Sie h...
CSS fügt dem div Scrollen hinzu und verbirgt die ...
Dieser Artikel stellt hauptsächlich die Implement...
Inhaltsverzeichnis 1. Häufig verwendete Zeichenfo...
Ich bin erst kürzlich zufällig auf diese kleine A...
Inhaltsverzeichnis 1. Holen Sie sich einen zufäll...
1. Überprüfen Sie die aktuell installierten PHP-P...
Electron installieren cnpm installiere Electron -...
MySQL wird in eine Installationsversion und eine ...
Die Umgebung dieses Artikels ist Windows 10 und d...
GitHub bietet alle möglichen magischen Tools. Heu...
RGBA ist eine CSS-Farbe, mit der Farbwert und Tra...
In diesem Artikelbeispiel wird der spezifische JS...
In diesem Artikelbeispiel wird der spezifische Co...