Beschreibung des MySQL-Optimierungsparameters query_cache_limit

Beschreibung des MySQL-Optimierungsparameters query_cache_limit

query_cache_limit

query_cache_limit gibt die Puffergröße an, die von einer einzelnen Abfrage verwendet werden kann. Der Standardwert ist 1 MB.

Optimieren der query_cache_size

Ab 4.0.1 bietet MySQL einen Abfragepuffermechanismus. Mithilfe der Abfragepufferung speichert MySQL die SELECT-Anweisung und die Abfrageergebnisse im Puffer. Zukünftig werden für dieselbe SELECT-Anweisung (Groß-/Kleinschreibung beachten) die Ergebnisse direkt aus dem Puffer gelesen. Laut MySQL-Benutzerhandbuch können Sie durch die Verwendung des Abfragepuffers eine Effizienzsteigerung von bis zu 238 % erzielen.

Durch Überprüfen des Statuswerts Qcache_* können Sie feststellen, ob die Einstellung von query_cache_size sinnvoll ist (die obigen Statuswerte können mit SHOW STATUS LIKE 'Qcache%' abgerufen werden). Wenn der Wert von Qcache_lowmem_prunes sehr groß ist, deutet dies darauf hin, dass der Puffer häufig nicht ausreicht. Wenn der Wert von Qcache_hits ebenfalls sehr groß ist, deutet dies darauf hin, dass der Abfragepuffer sehr häufig verwendet wird und Sie die Puffergröße erhöhen müssen. Wenn der Wert von Qcache_hits nicht groß ist, deutet dies darauf hin, dass Ihre Abfragewiederholungsrate sehr niedrig ist. In diesem Fall beeinträchtigt die Verwendung des Abfragepuffers die Effizienz, sodass Sie erwägen können, den Abfragepuffer nicht zu verwenden. Darüber hinaus wird durch das Hinzufügen von SQL_NO_CACHE zur SELECT-Anweisung explizit angegeben, dass der Abfragepuffer nicht verwendet wird.

Andere Parameter im Zusammenhang mit der Abfragepufferung sind query_cache_type, query_cache_limit und query_cache_min_res_unit. query_cache_type gibt an, ob Abfragepufferung verwendet werden soll und kann auf 0, 1 oder 2 gesetzt werden. Diese Variable ist eine Variable auf SESSION-Ebene. query_cache_limit gibt die Puffergröße an, die von einer einzelnen Abfrage verwendet werden kann. Der Standardwert ist 1 MB. query_cache_min_res_unit wurde nach Version 4.1 eingeführt. Es gibt die Mindesteinheit des zugewiesenen Pufferspeichers an und der Standardwert beträgt 4 KB. Überprüfen Sie den Statuswert Qcache_free_blocks. Wenn der Wert sehr groß ist, bedeutet dies, dass sich viele Fragmente im Puffer befinden, was bedeutet, dass die Abfrageergebnisse relativ klein sind. In diesem Fall müssen Sie query_cache_min_res_unit reduzieren.

Da unser Serverinhalt 96G groß ist, haben wir ihn wie folgt eingestellt

Abfrage-Cachegröße = 128 M
query_cache_limit = 8 M

Eine relativ vollständige my.ini-Datei. Sie können sie entsprechend Ihrem eigenen Server anpassen, um zu verhindern, dass MySQL nicht mehr ausgeführt wird. Dies gilt für MySQL Version 5.6.

[Kunde]
Port = 3306
Socket = /tmp/mysql.sock
Standardzeichensatz = utf8
#Stellen Sie die Client-Zeichenkodierung ein
[mysqld]
# allgemeine Konfigurationsoptionen
Port = 3306
Socket = /tmp/mysql.sock
basedir="E:/Datenbank/mysql/"
datadir="E:/Datenbank/mysql/Daten/"
tmpdir = "E:/Datenbank/mysql/tmp/"
#*** Zeichensatz ***
Zeichensatzserver = utf8
#Stellen Sie die Zeichenkodierung auf dem Server ein

#Die folgenden drei Parameter sind standardmäßig auf 12500, 1400 und 2000 eingestellt
performance_schema_max_table_instances = 20000
Tabellendefinitionscache = 2000
table_open_cache = 4096

#*** Netzwerk ***
back_log = 1024
#skip-networking #Nicht standardmäßig aktiviert
max_verbindungen = 10000
#max_connect_errors = 3000
table_open_cache = 4096
#externe Sperrung #Standardmäßig nicht aktiviert
max_allowed_packet = 256M
maximale Heap-Tabellengröße = 128 MB
secure_file_priv=''
explizite_Vorgaben_für_Zeitstempel=true
gleichzeitige_Einfügung = 2

#*** Zeitüberschreitung ***
interaktives_Timeout = 1000
Wartezeitüberschreitung = 1000

# *** globaler Cache ***
Lesepuffergröße = 64 M
read_rnd_buffer_size = 64M
Sortierpuffergröße = 64 M
Join-Puffergröße = 1024 M

# *** Faden ***
Thread-Cache-Größe = 64
# Thread_Parallelität = 8
Thread-Stapel = 512 KB

# *** Abfrage-Cache ***
Abfrage-Cachegröße = 128 M
query_cache_limit = 8 M

# *** Index ***
ft_min_word_len = 8

#memlock #Nicht standardmäßig aktiviert
Standard-Speicher-Engine = MYISAM
innodb=AUS
default-tmp-storage-engine=MYISAM
transaction_isolation = WIEDERHOLBARES LESEN

# *** temporäre Tabelle ***
temporäre Tabellengröße = 1024 M

# *** Binärprotokoll ***
#log-bin=mysql-bin
binlog_cache_size = 4M
binlog_format=gemischt
#log_slave_updates #Nicht standardmäßig aktiviert
#log #Standardmäßig nicht aktiviert. Dies ist das Abfrageprotokoll. Die Aktivierung beeinträchtigt die Serverleistung.
log_warnings #Warnprotokoll öffnen

# *** langsames Abfrageprotokoll ***
langsames_Abfrageprotokoll
lange_Abfragezeit = 10
# *** Replikationsbezogene Einstellungen
#Server-ID = 1
#Server-ID = 2
#master-host = <Hostname>
#master-user = <Benutzername>
#master-password = <Passwort>
#master-port = <Anschluss>
#schreibgeschützt
#*** MyISAM-spezifische Optionen
#myisam_recover
Schlüsselpuffergröße = 2048 M
bulk_insert_buffer_size = 128M
myisam_sort_buffer_size = 128 M
myisam_max_sort_file_size = 10 G
myisam_repair_threads = 1
myisam_recover_options=erzwingen,Sicherung

# *** INNODB-spezifische Optionen ***
#skip-innodb #Nicht standardmäßig aktiviert
lose-innodb-trx = 0
lose-innodb-sperren=0
lose-innodb-Sperre-wartet=0
lose-innodb-cmp = 0
lose-innodb-cmp-pro-index=0
lose-innodb-cmp-pro-Index-Reset = 0
lose-innodb-cmp-reset=0
lose-innodb-cmpmem = 0
lose-innodb-cmpmem-reset = 0
lose-innodb-puffer-seite=0
lose-innodb-puffer-seite-lru=0
lose-innodb-puffer-pool-statistiken=0
lose-innodb-Metriken=0
lose-innodb-ft-Standard-Stoppwort = 0
#loose-innodb-ft-eingefügt=0
lose-innodb-ft-gelöscht=0
lose-innodb-ft-wird-gelöscht=0
lose-innodb-ft-config = 0
lose-innodb-ft-index-cache=0
lose-innodb-ft-index-tabelle=0
lose-innodb-sys-tabellen=0
lose-innodb-sys-tablestats=0
lose-innodb-sys-indizes=0
lose-innodb-sys-spalten=0
lose-innodb-sys-felder=0
lose-innodb-sys-fremd = 0
lose-innodb-sys-fremd-cols = 0

[mysqldump]
schnell
max_allowed_packet = 256M

[mysql]
kein automatisches Wiederaufwärmen

[myisamchk]
Schlüsselpuffergröße = 2048 M
Sortierpuffergröße = 2048 M
Lesepuffer = 32 M
Schreibpuffer = 32 M

[mysqlhotcopy]
Interaktives Timeout

[mysqld_safe]
Limit für geöffnete Dateien = 10240
sql_mode=KEIN_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

Wenn Sie MySQL optimieren möchten, können Sie den Artikel zum MySQL-Abfragecache lesen.

Das könnte Sie auch interessieren:
  • MySQL-Abfrageoptimierung: LIMIT 1 vermeidet vollständigen Tabellenscan und verbessert die Abfrageeffizienz
  • Warum wird die MySQL-Paging-Funktion bei Verwendung von Limits immer langsamer?
  • Detaillierte Erläuterung der Fallstricke beim Mischen von MySQL-Order-By und Limit
  • Einfaches Beispiel für den Grenzwertparameter der MySQL-Paging
  • Gründe und Optimierungslösungen für langsames MySQL-Limit-Paging mit großen Offsets
  • Mysql-Sortierung und Paginierung (Order by & Limit) und vorhandene Fallstricke
  • So verwenden Sie das MySQL-Limit und lösen das Problem großer Paging-Aufgaben
  • Detaillierte Erläuterung des Problems der gemischten Verwendung von Limit- und Summenfunktionen in MySQL
  • So verbessern Sie die MySQL Limit-Abfrageleistung
  • Detaillierte Erläuterung der MySQL Limit-Leistungsoptimierung und der Paging-Daten-Leistungsoptimierung
  • Eine kurze Diskussion über die Implementierung der MySQL-Lösung zur Optimierung des Seitenlimits
  • Die Auswirkungen des Limits auf die Abfrageleistung in MySQL

<<:  Verwenden Sie Docker Compose, um ELK schnell bereitzustellen (getestet und effektiv)

>>:  Implementierung von erzwungenen Zeilenumbrüchen und Nicht-Zeilenumbrüchen in div, td, p und anderen Containern in HTML

Artikel empfehlen

Weitere Möglichkeiten zur Verwendung von spitzen Klammern in Bash

Vorwort In diesem Artikel werden wir weitere Verw...

Detaillierte Erläuterung des Beispiels für MySQL-Integritätsbeschränkungen

Dieser Artikel beschreibt die MySQL-Integritätsbe...

JS implementiert die Drag- und Platzhalterfunktionen von Elementen

In diesem Blogbeitrag geht es um eine Schwierigke...

Sechs Methoden zur Nginx-Optimierung

1. Optimieren Sie die Nginx-Parallelität [root@pr...

So verstehen Sie den Unterschied zwischen ref toRef und toRefs in Vue3

Inhaltsverzeichnis 1. Grundlagen 1.Referenz 2. to...

Implementierung eines CSS-Textschatten-Effekts zur allmählichen Unschärfe

Textschatten Fügen Sie dem Text einen Schatten hi...

So erstellen Sie einen Trigger in MySQL

In diesem Artikelbeispiel wird der spezifische Co...