MySQL-Cache-Klassifizierung
InnoDB-Pufferpool
Betriebssystem-Cache für InnoDB-Protokolldateien und MyIsAM-Daten
MyIsAM-Schlüsselcache
Abfrage-Cache
Cache, der nicht konfiguriert werden kann manuell, Binärprotokoll, Betriebssystem-Cache für Tabellendefinitionsdateien
Andere Caches erfordern normalerweise nicht zu viel Speicher
InnoDB-Pufferpool
Funktion:
1. Cache-Objekte umfassen : Datenzeilen, Indizes, Einfügepuffer, Sperren und interne Datenstrukturen.
2. Verwenden Sie den Pufferpool, um das Schreiben durch Moderatoren zu verzögern. Sie können mehrere Schreibvorgänge zusammenführen und nacheinander schreiben (Speichergerät).
Zugehörige Parameter:
Fragen Sie die Größe des InnoDB-Pufferpools ab. Die Einheit ist Byte
Variablen wie „innodb_buffer_pool_size“ anzeigen;
Die Variable innodb_max_dirty_pages_pct beeinflusst die Anzahl der schmutzigen Seiten.
Variablen wie „innodb_max_dirty_pages_pct“ anzeigen
Wenn die schmutzigen Seiten den von innod angegebenen Prozentsatz überschreiten b_max_dirty_pages_pct, der Hintergrund Der Thread startet (Schnellspülmodus), um die schmutzigen Seiten auf die Festplatte zu leeren
Wenn MySQL nicht mehr über genügend Speicher verfügt, gibt es einen Hintergrundthread ähnlich dem Lazywrite von SQL Server, der die schmutzigen Seiten regelmäßig auf die Festplatte leert
und bereinigt Der von den schmutzigen Seiten belegte Speicherplatz wird von anderen Daten verwendet (Daten, die in den Speicher geladen werden müssen).
Wenn im Transaktionsprotokoll kein Platz mehr vorhanden ist, wechselt InnoDB in den intensiven Löschmodus. Der Grund, warum große Protokolle die Leistung verbessern können (?)
Aufwärmpuffer:
Dies kann verstanden werden, wenn die Datenbank Startet, die Daten werden von der Festplatte in den Cache-Bereich geladen, um die Datenzugriffsleistung zu verbessern
Zwei Methoden zum Vorheizen des Puffers
1.Percina Server
2.Init_file-Einstellung, d. h. Angabe der SQL wird nach dem Start in Init_file geschrieben. Die in der SQL-Anweisung angegebenen Daten werden in den Puffer geschrieben Wird auch als Schlüsselpuffer bezeichnet. Daten werden nicht zwischengespeichert. Der MyisAM-Schlüsselcache ist der zwischengespeicherte Index.
Standardmäßig gibt es nur einen MyisAM-Schlüsselcache (Pool)
Beziehen Sie sich beim Festlegen von key_buffer_size auf die Größe des Index. Der Wert von key_buffer_size ist nicht größer als der Index.
Oder nicht mehr als 25 % bis 50 % des gesamten von der reservierten Speichers Betriebssystem-Cache Beziehen Sie sich bei der Einstellung auf die Größe des Indexfelds: select sum(index_length) from information_schema.`TABLES`
Standardmäßig vergröbert MySQL alle Indizes im Standardschlüsselcache,
Jeder MyisAM Der Schlüsselcache (Pool) hat eine bestimmte Größe. Sie können mehrere key_buffer_size erstellen, um den Index zwischenzuspeichern.
Konfigurationsmethode, fügen Sie sie der Konfigurationsdatei hinzu
key_buffer_1.key_buffer_size = 1G
key_buffer_2.key_buffer_size = 1G
Zusätzlich zur Standardeinstellung gibt es insgesamt drei key_buffer_size
Geben Sie den Index für den Schlüsselcache an:
Der Index der Cache-Tabelle für den angegebenen Puffer: Cache-Index t1, t2 in key_buffer_1
Oder Konfigurieren Sie
in init_file LODA INDEX IN CACHE t1, t2 (im Standardpuffer zugeordnet)
Berechnung der Schlüsselcache-Nutzung:
100-(( key_buffer_unused*key_cache_block_size)*100/key_buffer_size)
Andere:
1. MyisAM verwendet den Betriebssystemspeicher zum Zwischenspeichern von Daten. Die Daten sind häufig größer als der Index, sodass mehr Speicher für den Betriebssystemcache anstelle des Schlüsselcaches reserviert werden muss.
2. Auch wenn dies bei der MyisAM-Tabelle nicht der Fall ist verwendet, muss key_buffer_size noch auf einen kleineren Wert eingestellt werden (z. B. 32M). Der MySQL-Server kann die MyisAM-Tabelle intern verwenden.
Thread-Cache
Funktion:
Wenn die Verbindung geschlossen wird, wird sie freigegeben Der Thread wird zwischengespeichert und befindet sich im Standby-Zustand.
Wenn eine neue Verbindung erstellt wird, kann der im Cache zwischengespeicherte Thread direkt verwendet werden, um die Effizienz der Verbindungsanforderung zu verbessern.
Erstellen Sie für jede Verbindung einen neuen Thread > Verbrauchsmethode:
Die neue eingehende Verbindung belegt einen Thread im Cache-Status aus dem Cache (er wird nach der Belegung aus dem Cache gelöscht),
Wenn die Verbindung geschlossen wird, wenn der Thread-Cache noch vorhanden ist Leerzeichen, geben Sie den aktuellen Thread an den Cache-Thread zurück. Wenn der Cache-Thread keinen Speicherplatz hat, zerstören Sie diesen Thread.
Zugehörige Parameter:
Thread_cache_size gibt die Anzahl der Threads an, die im Cache gespeichert werden können.
Jeder Der Speicher Der von Threads belegte Speicherplatz beträgt etwa 256 KB.
Sofern kein sehr hoher gleichzeitiger Zugriff vorliegt, sollte dieser Wert nicht konfiguriert werden.
Die Einheit ist die Anzahl der zwischengespeicherten Threads
Variablen wie „thread_cache_size“
Der von jedem Thread belegte Speicherplatz beträgt etwa 256 KB,
Tabellencache
Funktion:
Hauptsächlich im Zusammenhang mit der MyisAM-Tabelle. Was zwischengespeichert wird, ist das .frm-Analyseergebnis der Tabelle und einige andere Daten.
Nach dem Zwischenspeichern ist die Effizienz des Zugriffs auf die Tabelle verbessert. Für die MyIsAM-Tabelle können Sie nach dem Zwischenspeichern der Tabelle vermeiden, die MyisAM-Header-Datei zu ändern, um zu markieren, dass die Tabelle verwendet wird
Variablen wie „%table_open_cache%“ anzeigen
InnoDB-Datenwörterbuchtabelle
Funktion:
InnoDB-Tabellendefinitionsinformationen zwischenspeichern,
Immer wenn eine InnoDB-Tabelle geöffnet wird, wird die Tabellendefinition im Datenwörterbuch zwischengespeichert, aber nach dem Schließen der Tabelle nicht aus dem Cache entfernt
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Klassifizierung und Konfiguration des MySQL-Cache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!