Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So erstellen Sie manuell einen MySQL-Cache

Der MySQL-Cache funktioniert unterschiedlich, je nachdem, ob Sie die MyISAM-Speicher-Engine oder die InnoDB-Speicher-Engine verwenden.

MyISAM speichert nur Indizes, keine Daten. Sie können LOAD INDEX INTO CACHE um MyISAM-Indizes vorab in den Schlüsselpuffer-Cache zu laden. Aber es gibt keine entsprechende Anweisung, wenn Sie InnoDB verwenden.

InnoDB speichert sowohl Daten- als auch Indexseiten. Es gibt keinen speziellen Befehl zum Aufwärmen der Cache-Puffer, aber Sie können einige SQL-Anweisungen ausführen, die vollständige Table-Scans und vollständige Index-Scans durchführen, um sie in die Puffer zu laden. Sie sollten dies mit einem Skript auf dem Server tun können, ohne auf wget zurückgreifen zu müssen !

Ich stimme der Antwort von @code_burgar zu:150.000 Zeilen sind klein genug, dass Sie keine großen Leistungseinbußen bemerken sollten, während sich der Cache aufwärmt.

Wenn Sie über das Aufwärmen des Abfrage-Cache , das ist ein anderes Thema. Sie müssen den Abfrage-Cache mithilfe bestimmter SQL-Abfragen aufwärmen, da dieser Cache Ergebnismengen enthält, die diesen SQL-Abfragen wörtlich zugeordnet sind. Ihr wget Lösung ist ineffizient und macht wahrscheinlich viel Arbeit doppelt. Sie sollten in der Lage sein, den Abfrage-Cache vorzubereiten, indem Sie ein Skript auf dem Server ausführen, das jede Abfrage, die Sie zwischenspeichern möchten, einmal ausführt .

Möglicherweise müssen Sie jedoch eine Codeüberprüfung durchführen, um herauszufinden, was diese Abfragen sind, und Ihr Cache-Preload-Skript regelmäßig aktualisieren, wenn sich Ihr Code ändert.