Warum MySQL Abfrage-Cache in Version 8.0 entfernen?
mysql
query-cache
mysql-8.0
shaoyihe
quelle
quelle
Antworten:
Es gibt eine detaillierte Blog des MySQL-Serverteams darüber, in dem Matt Lord sagt:
quelle
Auf Nimmerwiedersehen !!!
Für die meisten Datenbankentwickler ist es eine Herausforderung, die Größe der häufigsten Ergebnismengen in ihren Anwendungen korrekt zu schätzen. Ein großer Abfrage-Cache war dafür nur ein großer Verband.
Es gibt einen größeren Grund, der den Niedergang des Abfragecaches vorwegnahm. Vor vier Jahren habe ich den Beitrag beantwortet. Warum ist query_cache_type standardmäßig deaktiviert, ab MySQL 5.6? . Kurz gesagt, der Abfragecache hat den InnoDB-Pufferpool immer auf Änderungen überprüft. Sie finden dies auf den Seiten 209-215 von High Performance MySQL (2nd Edition). .
Ich habe das im Laufe der Jahre erwähnt:
Sep 05, 2012
: Lohnt sich der Aufwand für die häufige Ungültigmachung des Abfragecaches jemals?Sep 25, 2013
: Ungültigmachen von Abfrage-Cache-Einträgen (Schlüssel)Sep 26, 2013
: Der Trefferwert des Abfrage-Cache ändert sich in meiner Datenbank nichtDec 23, 2013
: MySQL mit hoher CPU- und SpeicherauslastungRIP-Abfrage-Cache !!!
quelle
(Ich stimme der anderen Antwort zu, aber hier ist mein Wert von 2 Cent.)
Wie implementiert, ...
Die Qualitätskontrolle kann nicht mit Galera oder Gruppenreplikation arbeiten, die beide in der HA-Arena mehr Zugkraft erhalten.
Wenn es
query_cache_size
groß wurde, wurde es weniger effizient. Dies ist auf Ineffizienzen beim "Beschneiden" zurückzuführen. (Hinweis: Aurora hat es erneut implementiert und scheint dieses Problem behoben zu haben.)Jeder hat einen Overhead,
SELECT
weil er nicht weiß, ob die Qualitätskontrolle ins Spiel kommt. Vor Jahrzehnten wurde dies auf 11% geschätzt. Bis zur Beseitigung der Qualitätskontrolle bestand die einzige Problemumgehung darin, beidesquery_cache_size = 0
undquery_cache_type = 0
die Konfigurationsdatei auszuführen. (Nur wenige Leute erkannten, dass beide benötigt wurden.)Auf dem typischen Produktionsserver treten häufig Einfügungen auf. Da bei jeder Einfügung alle Einträge für diese Tabelle (n) gelöscht wurden, war die Qualitätskontrolle für solche Tabellen praktisch unbrauchbar.
Vielleicht sind 95% der Hunderte von Systemen, die ich auf Leistungsprobleme überprüft habe, ohne die Qualitätskontrolle besser dran.
quelle