Heim Datenbank MySQL-Tutorial Geben Sie die MySQL-Cache-Abfrage frei und löschen Sie den Befehlsbeispielcode

Geben Sie die MySQL-Cache-Abfrage frei und löschen Sie den Befehlsbeispielcode

Apr 22, 2017 pm 05:02 PM
mysql 命令 缓存

In diesem Artikel wird hauptsächlich die Verwendung von Abfrage- und Löschbefehlen des MySQL-Cache vorgestellt. Für einige Tabellen, die nicht häufig Daten ändern und eine große Anzahl derselben SQL-Abfragen haben, ist der Abfrage-Cache bei Bedarf nützlicher kann darauf verweisen

MySQL-Abfragecache
Die Rolle des Abfragecaches besteht darin, dass der Server die Ergebnisse abruft, wenn die Abfrage eine Abfrage empfängt, die mit der zuvor identisch ist den Abfragecache, anstatt die letzte Abfrage erneut zu analysieren und auszuführen. Dies verbessert die Leistung erheblich und spart Zeit.
1. Abfrage-Cache konfigurieren
Ändern Sie die Konfigurationsdatei, ändern Sie query_cache_size und query_cache_type unter [mysqld] (fügen Sie hinzu, falls nicht). Unter diesen gibt query_cache_size die Größe des Caches an, und query_cache_type hat drei Werte, die den Typ der zwischengespeicherten ausgewählten Ergebnismenge angeben. Die Werte von query_cache_type lauten wie folgt:
0 oder off schaltet den Cache aus
1 oder on schaltet den Cache ein, speichert ihn aber nicht zur Verwendung. Die select-Anweisung von sql_no_cache: Wenn Sie den Namen „select sql_no_cache“ aus wei, wobei id=2
2 nicht zwischengespeichert wird oder die Aktivierung des bedingten Cachings erfordert, nur zwischenspeichern die select-Anweisung mit sql_cache, Cache select sql_cache name from wei where id=4
example Die Konfiguration ist wie folgt. Nachdem die Konfiguration abgeschlossen ist, starten Sie den MySQL-Server neu.


query_cache_size=10M 
query_cache_type=1
Nach dem Login kopieren

Mit dem folgenden Befehl können Sie überprüfen, ob es aktiviert ist. Dabei gibt have_query_cache an, ob es aktiviert ist, und query_cache_limit gibt die mögliche Puffergröße an Wird von einer einzelnen Abfrage verwendet, der Standardwert ist 1M; query_cache_min_res_unit ist die vom System zugewiesene Mindestcacheblockgröße. Der Standardwert ist 4 KB. Ein großer Einstellungswert ist für große Datenabfragen gut, aber wenn es sich bei Ihren Abfragen ausschließlich um kleine Datenabfragen handelt Die Konfiguration von query_cache_wlock_invalidate gibt an, ob das Cache-Ergebnis zurückgegeben oder gewartet werden soll, wenn andere Clients in die MyISAM-Tabelle schreiben bis der Schreibvorgang abgeschlossen ist, bevor die Tabelle gelesen wird, um das Ergebnis zu erhalten.


mysql> show variables like '%query_cache%'; 
+------------------------------+----------+ 
| Variable_name        | Value  | 
+------------------------------+----------+ 
| have_query_cache       | YES   | 
| query_cache_limit      | 1048576 | 
| query_cache_min_res_unit   | 4096   | 
| query_cache_size       | 10485760 | 
| query_cache_type       | ON    | 
| query_cache_wlock_invalidate | OFF   | 
+------------------------------+----------+ 
6 rows in set (0.00 sec)
Nach dem Login kopieren

2. Wir führen es zuerst einmal aus, wählen count(*) aus wei aus und führen es dann erneut aus, wie Sie sehen können dass die zweite Ausführung diesmal viel kürzer ist als bei der ersten Ausführung, da das Auswahlergebnis beim zweiten Mal aus dem Cache gelesen wird.


mysql> select count(*) from wei ; 
+----------+ 
| count(*) | 
+----------+ 
| 4194304 | 
+----------+ 
1 row in set (3.92 sec) 
mysql> select count(*) from wei ; 
+----------+ 
| count(*) | 
+----------+ 
| 4194304 | 
+----------+ 
1 row in set (0.00 sec)
Nach dem Login kopieren
Wir können den aktuellen Cache-Status mit dem folgenden Befehl überprüfen



mysql> show status like 'qcache%'; 
+-------------------------+----------+ 
| Variable_name      | Value  | 
+-------------------------+----------+ 
| Qcache_free_blocks   | 1    | 
| Qcache_free_memory   | 10475424 | 
| Qcache_hits       | 1    | 
| Qcache_inserts     | 1    | 
| Qcache_lowmem_prunes  | 0    | 
| Qcache_not_cached    | 0    | 
| Qcache_queries_in_cache | 1    | 
| Qcache_total_blocks   | 4    | 
+-------------------------+----------+ 
8 rows in set (0.00 sec)
Nach dem Login kopieren
Die Bedeutung jedes Parameters ist wie folgt:

  • Qcache_free_blocks: Die Anzahl benachbarter Speicherblöcke im Cache. Eine große Zahl weist darauf hin, dass möglicherweise Fragmente vorhanden sind. FLUSH QUERY CACHE defragmentiert den Cache, um einen freien Block zu erhalten.

  • Qcache_free_memory: Speicher im Cache freigeben.

  • Qcache_hits: Wird jedes Mal erhöht, wenn eine Abfrage im Cache landet.

  • Qcache_inserts: Wird jedes Mal erhöht, wenn eine Abfrage eingefügt wird. Die Anzahl der Treffer dividiert durch die Anzahl der Einfügungen ergibt die Fehlschussquote.

  • Qcache_lowmem_prunes: Die Häufigkeit, mit der der Cache nicht mehr über genügend Speicher verfügte und geleert werden musste, um Platz für weitere Abfragen zu schaffen. Diese Zahl lässt sich am besten über einen längeren Zeitraum hinweg betrachten. Wenn diese Zahl zunimmt, kann dies auf eine starke Fragmentierung oder einen geringen Speicherbedarf hinweisen. (Die oben genannten free_blocks und free_memory können Ihnen sagen, um welche Situation es sich handelt)

  • Qcache_not_cached: Die Anzahl der Abfragen, die nicht zum Caching geeignet sind, normalerweise weil diese Abfragen keine SELECT-Anweisungen sind oder jetzt verwendet werden ( ) und andere Funktionen.

  • Qcache_queries_in_cache: Die Anzahl der aktuell zwischengespeicherten Abfragen (und Antworten).

  • Qcache_total_blocks: Anzahl der Blöcke im Cache.

Cache leeren

MySQLs FLUSH-Syntax (Cache leeren)


FLUSH flush_option [,flush_option]
Nach dem Login kopieren
Wenn Sie einen Teil des von MySQL verwendeten internen Caches löschen möchten, sollten Sie den FLUSH-Befehl verwenden. Um FLUSH auszuführen, müssen Sie über die Berechtigung zum erneuten Laden verfügen.

flush_option kann eine der folgenden Optionen sein:

  • HOSTS Dies wird am häufigsten verwendet und kommt am häufigsten vor. Wird hauptsächlich zum Löschen der Host-Cache-Tabelle verwendet. Wenn einige Ihrer Hosts die IP-Nummern ändern oder wenn Sie die Fehlermeldung „Host... ist blockiert“ erhalten, sollten Sie die Hosttabelle leeren. Wenn für einen bestimmten Host beim Herstellen einer Verbindung zum MySQL-Server kontinuierlich mehr als max_connect_errors-Fehler auftreten, blockiert MySQL aus Sicherheitsgründen weitere Verbindungsanfragen vom Host. Durch das Löschen der Host-Tabelle kann der Host erneut versuchen, eine Verbindung herzustellen.

  • LOGS Schließen Sie die aktuelle Binärprotokolldatei und erstellen Sie eine neue Datei. Der Name der neuen Binärprotokolldatei wird um 1 zur Nummer der aktuellen Binärdatei addiert.

  • PRIVILEGEN Dies wird auch häufig nach der erneuten Autorisierung verwendet, damit die neuen Berechtigungen für den Fall der Fälle sofort wirksam werden. Der Zweck besteht darin, sie zu erhalten die Berechtigungstabelle aus der Datenbank. Laden Sie die Berechtigungen erneut in den Cache.

  • TABELLEN Schließen Sie alle geöffneten Tabellen. Durch diesen Vorgang wird der Inhalt des Abfragecaches gelöscht.

  • FLUSH TABLES WITH READ LOCK Schließen Sie alle offenen Tabellen und fügen Sie eine Lesesperre für alle Tabellen in der Datenbank hinzu, bis das Entsperren von Tabellen explizit ausgeführt wird. Dieser Vorgang wird häufig zur Datensicherung verwendet.

  • STATUS Setzt die meisten Statusvariablen auf 0 zurück.

  • MASTER Löschen Sie alle Binärprotokolldateien in der Binärprotokoll-Indexdatei, setzen Sie die Indexdatei der Binärprotokolldatei auf leer zurück und erstellen Sie eine neue Binärprotokolldatei. Dies ist jedoch nicht der Fall länger empfohlen. Verwendung, geändert auf Reset-Master. Wie Sie sich vorstellen können, war ich früher sehr naiv, aber es waren mehrere Befehle erforderlich. Die vorherige Methode bestand darin, zuerst den Namen der aktuellen Binärprotokolldatei herauszufinden und dann die Bereinigung durchzuführen Betrieb.

  • ABFRAGE-CACHE Reorganisiert den Abfrage-Cache, eliminiert Fragmente und verbessert die Leistung, hat jedoch keinen Einfluss auf die vorhandenen Daten im Abfrage-Cache. Dies ist dasselbe wie „Tabelle leeren“ und „Abfrage-Cache zurücksetzen“. Löscht den Inhalt des Abfragecaches) sind unterschiedlich.

  • SLAVE Es ähnelt dem Zurücksetzen der Replikation. Dadurch vergisst die Slave-Datenbank den Replikationsspeicherort der Master-Datenbank und löscht auch das heruntergeladene Relay-Protokoll empfohlen. Geändert in „Slave zurücksetzen“. Das ist auch sehr nützlich.

Im Allgemeinen werden Flush-Vorgänge in binären Protokolldateien aufgezeichnet, FLUSH LOGS, FLUSH MASTER, FLUSH SLAVE und FLUSH TABLES WITH READ LOCK werden jedoch nicht aufgezeichnet, wenn also das oben Genannte zutrifft Vorgänge werden in der binären Protokolldatei aufgezeichnet und wirken sich auf die Slave-Datenbank aus. Hinweis: Der Reset-Vorgang spielt tatsächlich die Rolle einer erweiterten Version des Flush-Vorgangs.

Das obige ist der detaillierte Inhalt vonGeben Sie die MySQL-Cache-Abfrage frei und löschen Sie den Befehlsbeispielcode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Ich kann mich nicht als Stamm bei MySQL anmelden Ich kann mich nicht als Stamm bei MySQL anmelden Apr 08, 2025 pm 04:54 PM

Die Hauptgründe, warum Sie sich bei MySQL nicht als Root anmelden können, sind Berechtigungsprobleme, Konfigurationsdateifehler, Kennwort inkonsistent, Socket -Dateiprobleme oder Firewall -Interception. Die Lösung umfasst: Überprüfen Sie, ob der Parameter Bind-Address in der Konfigurationsdatei korrekt konfiguriert ist. Überprüfen Sie, ob die Root -Benutzerberechtigungen geändert oder gelöscht und zurückgesetzt wurden. Stellen Sie sicher, dass das Passwort korrekt ist, einschließlich Fall- und Sonderzeichen. Überprüfen Sie die Einstellungen und Pfade der Socket -Dateiberechtigte. Überprüfen Sie, ob die Firewall Verbindungen zum MySQL -Server blockiert.

MySQL, ob die Tabellenverriegelungstabelle geändert werden soll MySQL, ob die Tabellenverriegelungstabelle geändert werden soll Apr 08, 2025 pm 05:06 PM

Wenn MySQL -Modifys -Tabellenstruktur verwendet werden, werden normalerweise Metadatenverriegelungen verwendet, wodurch die Tabelle gesperrt wird. Um die Auswirkungen von Schlösser zu verringern, können die folgenden Maßnahmen ergriffen werden: 1. Halten Sie Tabellen mit Online -DDL verfügbar; 2. Führen Sie komplexe Modifikationen in Chargen durch; 3.. Arbeiten während kleiner oder absendlicher Perioden; 4. Verwenden Sie PT-OSC-Tools, um eine feinere Kontrolle zu erreichen.

RDS MySQL -Integration mit RedShift Zero ETL RDS MySQL -Integration mit RedShift Zero ETL Apr 08, 2025 pm 07:06 PM

Vereinfachung der Datenintegration: AmazonRDSMYSQL und Redshifts Null ETL-Integration Die effiziente Datenintegration steht im Mittelpunkt einer datengesteuerten Organisation. Herkömmliche ETL-Prozesse (Extrakt, Konvertierung, Last) sind komplex und zeitaufwändig, insbesondere bei der Integration von Datenbanken (wie AmazonRDSMysQL) in Data Warehouses (wie Rotverschiebung). AWS bietet jedoch keine ETL-Integrationslösungen, die diese Situation vollständig verändert haben und eine vereinfachte Lösung für die Datenmigration von RDSMysQL zu Rotverschiebung bietet. Dieser Artikel wird in die Integration von RDSMYSQL Null ETL mit RedShift eintauchen und erklärt, wie es funktioniert und welche Vorteile es Dateningenieuren und Entwicklern bringt.

Die Abfrageoptimierung in MySQL ist für die Verbesserung der Datenbankleistung von wesentlicher Bedeutung, insbesondere im Umgang mit großen Datensätzen Die Abfrageoptimierung in MySQL ist für die Verbesserung der Datenbankleistung von wesentlicher Bedeutung, insbesondere im Umgang mit großen Datensätzen Apr 08, 2025 pm 07:12 PM

1. Verwenden Sie den richtigen Index, um das Abrufen von Daten zu beschleunigen, indem die Menge der skanierten Datenmenge ausgewählt wird. Wenn Sie mehrmals eine Spalte einer Tabelle nachschlagen, erstellen Sie einen Index für diese Spalte. Wenn Sie oder Ihre App Daten aus mehreren Spalten gemäß den Kriterien benötigen, erstellen Sie einen zusammengesetzten Index 2. Vermeiden Sie aus. Auswählen * Nur die erforderlichen Spalten. Wenn Sie alle unerwünschten Spalten auswählen, konsumiert dies nur mehr Serverspeicher und veranlasst den Server bei hoher Last oder Frequenzzeiten, beispielsweise die Auswahl Ihrer Tabelle, wie beispielsweise die Spalten wie innovata und updated_at und Zeitsteuer und dann zu entfernen.

Kann MySQL auf Android laufen? Kann MySQL auf Android laufen? Apr 08, 2025 pm 05:03 PM

MySQL kann nicht direkt auf Android ausgeführt werden, kann jedoch indirekt mit den folgenden Methoden implementiert werden: Die Verwendung der Leichtgewichtsdatenbank SQLite, die auf dem Android -System basiert, benötigt keinen separaten Server und verfügt über eine kleine Ressourcennutzung, die für Anwendungen für Mobilgeräte sehr geeignet ist. Stellen Sie sich remote eine Verbindung zum MySQL -Server her und stellen Sie über das Netzwerk zum Lesen und Schreiben von Daten über das Netzwerk eine Verbindung zur MySQL -Datenbank auf dem Remote -Server her. Es gibt jedoch Nachteile wie starke Netzwerkabhängigkeiten, Sicherheitsprobleme und Serverkosten.

Kann MySQL mehrere Verbindungen umgehen? Kann MySQL mehrere Verbindungen umgehen? Apr 08, 2025 pm 03:51 PM

MySQL kann mehrere gleichzeitige Verbindungen verarbeiten und Multi-Threading-/Multi-Processings verwenden, um jeder Client-Anfrage unabhängige Ausführungsumgebungen zuzuweisen, um sicherzustellen, dass sie nicht gestört werden. Die Anzahl der gleichzeitigen Verbindungen wird jedoch von Systemressourcen, MySQL -Konfiguration, Abfrageleistung, Speicher -Engine und Netzwerkumgebung beeinflusst. Die Optimierung erfordert die Berücksichtigung vieler Faktoren wie Codeebene (Schreiben effizienter SQL), Konfigurationsstufe (Anpassung von max_connections), Hardwareebene (Verbesserung der Serverkonfiguration).

Muss MySQL bezahlen? Muss MySQL bezahlen? Apr 08, 2025 pm 05:36 PM

MySQL hat eine kostenlose Community -Version und eine kostenpflichtige Enterprise -Version. Die Community -Version kann kostenlos verwendet und geändert werden, die Unterstützung ist jedoch begrenzt und für Anwendungen mit geringen Stabilitätsanforderungen und starken technischen Funktionen geeignet. Die Enterprise Edition bietet umfassende kommerzielle Unterstützung für Anwendungen, die eine stabile, zuverlässige Hochleistungsdatenbank erfordern und bereit sind, Unterstützung zu bezahlen. Zu den Faktoren, die bei der Auswahl einer Version berücksichtigt werden, gehören Kritikalität, Budgetierung und technische Fähigkeiten von Anwendungen. Es gibt keine perfekte Option, nur die am besten geeignete Option, und Sie müssen die spezifische Situation sorgfältig auswählen.

Wie optimieren Sie die MySQL-Leistung für Hochlastanwendungen? Wie optimieren Sie die MySQL-Leistung für Hochlastanwendungen? Apr 08, 2025 pm 06:03 PM

Die MySQL-Datenbankleistung Optimierungshandbuch In ressourcenintensiven Anwendungen spielt die MySQL-Datenbank eine entscheidende Rolle und ist für die Verwaltung massiver Transaktionen verantwortlich. Mit der Erweiterung der Anwendung werden jedoch die Datenbankleistung Engpässe häufig zu einer Einschränkung. In diesem Artikel werden eine Reihe effektiver Strategien zur Leistungsoptimierung von MySQL -Leistung untersucht, um sicherzustellen, dass Ihre Anwendung unter hohen Lasten effizient und reaktionsschnell bleibt. Wir werden tatsächliche Fälle kombinieren, um eingehende Schlüsseltechnologien wie Indexierung, Abfrageoptimierung, Datenbankdesign und Caching zu erklären. 1. Das Design der Datenbankarchitektur und die optimierte Datenbankarchitektur sind der Eckpfeiler der MySQL -Leistungsoptimierung. Hier sind einige Kernprinzipien: Die Auswahl des richtigen Datentyps und die Auswahl des kleinsten Datentyps, der den Anforderungen entspricht, kann nicht nur Speicherplatz speichern, sondern auch die Datenverarbeitungsgeschwindigkeit verbessern.

See all articles