MySQL hatte zuvor einen Abfragecache, Query Cache. Ab 8.0 wird dieser Abfragecache nicht mehr verwendet. Was ist also der Grund für den Verzicht darauf? Dieser Artikel stellt es Ihnen vor. Der MySQL-Abfragecache ist ein Cache mit Abfrageergebnissen. Es vergleicht Abfragen, die mit SEL beginnen, mit der Hash-Tabelle und gibt bei einer Übereinstimmung das Ergebnis der vorherigen Abfrage zurück. Beim Abgleichen muss die Abfrage Byte für Byte abgeglichen werden. Beispielsweise ist SELECT * FROM t1; nicht gleich select * from t1;. Darüber hinaus können einige unsichere Abfrageergebnisse nicht zwischengespeichert werden, und jede Änderung an der Tabelle macht alle Caches dieser Tabellen ungültig. Deshalb ist das beste Szenario für die Abfrage-Zwischenspeicherung das schreibgeschützte Szenario, insbesondere bei komplexen Abfragen, die Millionen von Zeilen prüfen und nur wenige zurückgeben müssen. Wenn Ihre Abfrage eine solche Eigenschaft aufweist, wird die Aktivierung des Abfragecaches Ihre Abfrageleistung verbessern. Mit fortschreitender Technologie und im Lauf der Zeit stellte das MySQL-Entwicklungsteam fest, dass die Aktivierung des Caching nicht viele Vorteile mit sich brachte. Erstens hängt die Wirkung des Abfragecaches von der Cache-Trefferquote ab. Nur Abfragen, die den Cache treffen, können verbessert werden, sodass seine Leistung nicht vorhergesagt werden kann. Zweitens besteht ein weiteres großes Problem mit dem Abfragecache darin, dass er durch einen einzelnen Mutex geschützt ist. Auf einem Server mit vielen Kernen kann eine große Anzahl von Abfragen zu zahlreichen Mutex-Konflikten führen. Benchmarking hat ergeben, dass die meisten Workloads am besten durch die Deaktivierung des Abfragecaches (Standard für 5.6) bedient werden: query_cache_type = 0 Wenn Sie meinen, dass Sie vom Abfrage-Caching profitieren würden, testen Sie es entsprechend.
Ein weiterer Grund, warum MySQL 8.0 den Abfrage-Cache abschafft, besteht darin, dass Untersuchungen zeigen, dass der Nutzen umso größer ist, je näher der Cache am Client ist. Weitere Informationen zu dieser Studie finden Sie unter https://proxysql.com/blog/scaling-with-proxysql-query-cache/. Das folgende Bild stammt von der oben genannten URL: Darüber hinaus wurden in MySQL 8.0 neue Tools zur Leistungseingriff hinzugefügt. Beispielsweise können Sie jetzt das Query-Rewrite-Plugin verwenden, um Optimizer-Hinweisanweisungen einzufügen, ohne die Anwendung zu ändern. Alternativ gibt es Tools von Drittanbietern wie ProxySQL, die als Zwischencache fungieren können. Aus den oben genannten Gründen unterstützt MySQL 8.0 das Abfrage-Caching nicht mehr. Wenn Sie von 5.7 auf 8.0 aktualisieren, sollten Sie die Verwendung von Query Rewrite oder anderen Caches in Betracht ziehen. Der vollständige Text ist vorbei. Oben finden Sie Einzelheiten dazu, warum MySQL Query Cache abgebrochen hat. Weitere Informationen zu MySQL Query Cache finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung zum Anpassen des Linux-Befehlsverlaufs
>>: Webinterview: Benutzerdefinierte Vue-Komponenten und Aufrufmethoden
Inhaltsverzeichnis 1. Deklarieren Sie eine Funkti...
Ich erstelle schon lange Websites, habe aber immer...
1. Big Data und Hadoop Um Big Data zu studieren u...
Im Projekt werden Sie auf benutzerdefinierte öffe...
Vorwort Wie wir alle wissen, ist Bash (die Bourne...
1. Einleitung Dieser Artikel enthält keine Screen...
Docker fragt Bilder in einem privaten Register ab...
Detailliertes Tutorial zum Herunterladen und Inst...
Vorwort: Die Funktion „Gruppieren nach“ ruft das ...
Daten exportieren Einen Fehler melden VARIABLEN W...
Inhaltsverzeichnis Vorwort 1. Allgemeine Fehlerbe...
Als ersten Artikel dieser Studiennotiz beginnen w...
1. Elemente und Tags in HTML <br />Ein Elem...
Dockerfile initialisieren Angenommen, unser Proje...
Inhaltsverzeichnis 1. Einleitung 2. Verwendung 1....