query_cache_type = 0 vs query_cache_type = 1


7

Kürzlich bin ich von Standard-MySQL zu gewechseltPercona und habe den Percona-Assistenten zum Generieren verwendet my.cnf.

Ich kann jedoch sehen, dass standardmäßig die generierten Einstellungen zur my.cnfVerwendung sind query_cache_type = 0. (Abfrage-Cache ist deaktiviert).

Das einzige, was ich auf dem Server laufen lasse, ist ein Wordpress-Blog. Meine Fragen sind:

  1. Darf ich den Abfragecache aktivieren?
  2. Es gibt einige Wordpress-Plugins, die Datenbank-Cache anbieten. Ist das Ergebnis der Aktivierung des Abfragecaches ähnlich?

Dieselbe Frage desselben Benutzers existiert an zwei Stellen. Können wir sie zusammenführen: stackoverflow.com/questions/14420475/…
Dhaupin

Antworten:


5

Für ein Wordpress-Blog sollte es in Ordnung sein, es festzulegen query_cache_type = 1. Die Hauptprobleme mit dem Abfragecache sind:

  1. Es macht sehr leicht ungültig (jede Aktualisierung einer Tabelle macht alle Abfragen in Bezug auf diese Tabelle ungültig)

  2. Es hat einen einzelnen Mutex, für den jede eingehende oder ausgehende Abfrage durchlaufen werden muss.

Der Abfrage-Cache war in den Tagen in Ordnung, als Maschinen einen Kern hatten, vielleicht zwei; Es ist nicht gut mit mehreren Kernen und hoher Parallelität, und es ist nicht gut mit schreibintensiven Anwendungen.

Ihr Wordpress-Blog ist wahrscheinlich nicht schreibintensiv: Ihre Schreibvorgänge sind neue Beiträge, Aktualisierungen, Kommentare ... Wie viele davon? Sie können sie nicht einmal pro Minute kontern ...

Es wäre eigentlich auch nicht intensiv lesbar. Hunderte von Lesungen pro Tag Tausende? Das ist garnichts.

In Bezug auf Plugins hängt dies stark vom Plugin und von Ihrer Bereitstellung ab. Wordpress ist in PHP geschrieben, und PHP verwendet möglicherweise Cache-Mechanismen wie Dateisystem, Memcached oder APC. Es sollte normalerweise ein "besseres" Caching für den spezifischen Zweck sein, an dem es ausgerichtet ist. Das heißt, zwischengespeicherte Daten werden aufgrund realer Änderungen an relevanten Daten ungültig - nicht für irrelevante Operationen in einer Tabelle. Die Programmierer des Plugins müssten entscheiden, welche Daten für den Cache wichtig sind und welche nicht, wie die Ungültigmachung funktioniert.

Auch in der Größe eines Blogs ist dies keine große Sache und sollte keinen signifikanten Unterschied machen (natürlich könnte es immer ein verrücktes Plugin geben).

Fazit: Für Ihre Bedürfnisse ist alles möglich und es spielt keine Rolle.


0

Dies hängt von Ihrem DB-Typ ab. Wenn Sie InnoDB verwenden, ist kein Abfragecache erforderlich. Darüber hinaus beeinträchtigt der Abfragecache die Geschwindigkeit der Gesamtleistung. Wenn Sie MyISAM für WordPress verwenden, sollten Sie es daher verwenden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.