1. Einleitung table_cache ist ein sehr wichtiger MySQL-Leistungsparameter, der in Versionen nach 5.1.3 table_open_cache genannt wird. table_cache wird hauptsächlich verwendet, um die Anzahl der Tabellencaches festzulegen. Da jede Clientverbindung auf mindestens eine Tabelle zugreift, hängt der Wert dieses Parameters mit max_connections zusammen. 2. Cache-Mechanismus Wenn eine Verbindung auf eine Tabelle zugreift, überprüft MySQL die Anzahl der aktuell zwischengespeicherten Tabellen. Wenn die Tabelle im Cache geöffnet wurde, wird zur Beschleunigung der Abfrage direkt auf die im Cache vorhandene Tabelle zugegriffen, wenn die Tabelle nicht im Cache gespeichert ist, wird die aktuelle Tabelle dem Cache hinzugefügt und abgefragt. Vor dem Ausführen eines Cachevorgangs wird table_open_cache verwendet, um die maximale Anzahl der Cachetabellen zu begrenzen: Wenn die aktuell zwischengespeicherten Tabellen table_open_cache nicht erreichen, werden neue Tabellen hinzugefügt. Wenn dieser Wert erreicht wurde, gibt MySQL den vorherigen Cache basierend auf der letzten Abfragezeit, der Abfragerate und anderen Regeln der Cachetabelle frei. Immer wenn MySQL auf eine Tabelle zugreift, wird die Tabelle, sofern im Tabellenpuffer Platz vorhanden ist, geöffnet und dort platziert, was einen schnelleren Zugriff auf den Tabelleninhalt ermöglicht. 3. Wie beurteilt man Durch die Überprüfung der Statuswerte Open_tables und Opened_tables während Spitzenzeiten können Sie entscheiden, ob Sie den Wert von table_open_cache erhöhen müssen. Wenn Sie feststellen, dass open_tables gleich table_open_cache ist und opened_tables wächst, müssen Sie den Wert von table_open_cache erhöhen (die obigen Statuswerte können mit SHOW GLOBAL STATUS LIKE 'Open%tables' abgerufen werden). Beachten Sie, dass Sie table_open_cache nicht blind auf einen großen Wert setzen können. Wenn der Wert zu hoch eingestellt ist, gehen Ihnen möglicherweise die Dateideskriptoren aus, was zu instabiler Leistung oder Verbindungsfehlern führt. Offene_Tabellen / Geöffnete_Tabellen >= 0,85 Offene_Tabellen / Tabellencache <= 0,95 4. Vorschläge Wenn Sie sich am Anfang nicht sicher sind, platzieren Sie die MySQL-Datenbank für einen bestimmten Zeitraum in der Produktionsumgebung, passen Sie dann den Parameterwert so an, dass er größer als der Wert von Opened_tables ist, und stellen Sie sicher, dass er unter extremen Bedingungen relativ hoher Last immer noch etwas größer als Opened_tables ist. mysql>Tabellen leeren; kann open_tables löschen # Service mysqld Neustart kann geöffnete Tabellen löschen Nachfolgend finden Sie Anweisungen für MySQL 5.6 table_open_cache gibt die Größe des Tabellencaches an. Immer wenn MySQL auf eine Tabelle zugreift, wird die Tabelle, sofern im Tabellenpuffer Platz vorhanden ist, geöffnet und dort platziert, was einen schnelleren Zugriff auf den Tabelleninhalt ermöglicht. Testumgebung: Tencent Cloud CDB, Speicher 4000 M, überprüfen Sie table_open_cache=512 in der Konsole, überwachen Sie, ob die Einstellung table_open_cache sinnvoll ist und ob sie optimiert werden muss. Variablen wie „%table_open_cache%“ anzeigen; globalen Status wie „Open%tables“ anzeigen; Es wird festgestellt, dass open_tables gleich table_open_cache ist, beide sind 512, was darauf hinweist, dass MySQL die zwischengespeicherte Tabelle freigibt, um die neue Tabelle aufzunehmen. Zu diesem Zeitpunkt müssen Sie möglicherweise den Wert von table_open_cache erhöhen. Für eine Maschine mit 4G-Speicher wird empfohlen, ihn auf 2048 einzustellen Passendere Werte: Offene_Tabellen / Geöffnete_Tabellen >= 0,85 Wenn Sie sich bei diesem Parameter nicht sicher sind, hier ein sehr konservativer Einstellungsvorschlag: Setzen Sie die MySQL-Datenbank für einen Zeitraum eines Probebetriebs in die Produktionsumgebung ein und passen Sie den Parameterwert dann so an, dass er größer als der Wert von Opened_tables ist. Stellen Sie sicher, dass er unter extremen Bedingungen relativ hoher Last immer noch etwas größer als Opened_tables ist. Das könnte Sie auch interessieren:
|
<<: Detaillierte Verwendung des Kubernetes-Objektvolumens
>>: Mac VMware Fusion CentOS7 Konfiguration statisches IP-Tutorial-Diagramm
Inhaltsverzeichnis WebAPI DOM DOM-Baum Methode zu...
In diesem Artikelbeispiel wird der spezifische Co...
Da sich die heimische Netzwerkumgebung immer weit...
Ich habe diese Frage heute in der SQL-Schulungsfr...
Bei der Entwicklung von Webprojekten verweisen wi...
Bedürfnisse entdecken Wenn nur ein Teil eines Ber...
Die Breite des übergeordneten Containers ist fest...
Wenn MySQL DDL-Operationen wie „Alter Table“ ausf...
Inhaltsverzeichnis Kurzzusammenfassung Heute Mitt...
In diesem Artikelbeispiel wird der spezifische Co...
1. Vektorkarte Vektorgrafiken verwenden gerade Li...
Wie kann ich überprüfen, ob die Zeitzone des Dock...
Durch die Verwendung von Abkürzungen können Sie di...
Vorwort: Wie erhält man die Koordinaten der aktue...