Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Der MySQL Query-Cache

Mitglied: Frank

Frank (Level 5) - Jetzt verbinden

13.11.2003, aktualisiert 25.03.2011, 107052 Aufrufe, 4 Kommentare

Kurz gesagt: Der MySQL Query-Cache beschleunigt in den meißten Fällen die Abfragen. Er ist ab der Version 4 von MYSQL enthalten.

In dem Query-Cache werden Querys und deren Ergebnismengen gespeichert. Wenn das gleiche Statement mehrmals benutzt wird und die betroffenen Datensätze sich nicht verändert haben, wird das Ergebnis aus dem Cache geliefert. Bei einem kleinen Cache kann es allerdings sehr schnell vorkommen, dass ältere Statements überschrieben werden.
In Szenarien, in denen häufig auf Bestandsdaten zugegriffen wird, kann dieser Cache enmorme Geschwindigkeitssteigerungen bewirken. Besonders bei komplexen Statements kann der Query-Cache sehr wirkungsvoll sein, da das zeitaufwendige Parsen der Statements entfällt. Bei Bewegungsdaten, dürften die Geschwindigkeitssteigerungen ehere gering sein.


Die Cache-Parameter:

Um mit den Cache-Parametern herumspielen zu können, müssen Sie sich mit 'root'-Rechten einloggen. Zunächst identifizieren Sie die eingestellten Optionen der MySQL Datenbank. Sie können dazu einfach 'show variables' eingeben. Allerdings erhalten Sie dabei eine Riesenliste, und müssten die interessanten Werte mühsam heraussuchen. Einfacher geht es mit dem Mysql-Befehl:
Das Ergebins sieht bei den meißten dann so aus:
Als default query_cache_size Wert steht dort 0. Ihr Cache ist also noch nicht eingeschaltet.

Mit dem Wert 'query_cache_size' reservieren Sie in MySQL einen bestimmten Speicherbereich, um einmal beantwortete 'select'-Anfragen temporär zwischenzuspeichern. Das bringt ab der zweiten Abfrage ganz massiv schnellere Resultate, weil die Informationen direkt aus dem Speicher kommen.

Schalten Sie den Cache nun in der Laufzeit ein (die Größe ist hier in Byte angegeben, kann aber auch in MB angegeben werden z.B. 100M):
Zum Testen nun den Befehl:
Die query_cache_size steht jetzt auf etwa 9999360 Bytes. Die Differenz von einigen Bytes sollte Sie nicht weiter beunruhigen, letztlich braucht die Verwaltung auch noch einige Bytes.

Mit dem Befehl:
initialisieren Sie den Cache auf Ihre aktuellen Daten. Der Befehl bewirkt eine defragmentation des Caches und kann jederzeit zur Optimierung ausgeführt werden.

Mit dem Befehl:
löschen Sie alle gespeicherten Cache Ergebnisse aus den Query-Cache.


Permanente Eintrag in die Mysql-Konfigurationsdatei: my.cnf

In Ihrer Laufzeitumgebung ist der Query-Cache nun erfolgreich eingeschaltet. Fehlt nur noch der permanente Eintrag in die Datei my.cnf (diese Konfigurations-Datei finden sie meist im "/etc/ Verzeichnis Ihrer Linux Distribution, unter Ubuntu z.B. im Verzeichnis /etc/mysql/), damit die Einstellung nach einem Neustart der MySQL auch weiterhin bestehen bleiben.

Tragen sie dazu in die MySQL-Konfigurationsdatei: "/etc/my.cnf" die Zeile: "query_cache_size=128M" und "query_cache_type = 1" ein. Überprüfen Sie den Eintrag danach per Mysql-Console mit dem Befehl "show variables like 'query_cache_size';". Fertig.
Man kann die Effiezienz des Query-Cache auch sehr leicht bewerten. Mit dem Befehl:
bekommen sie alle Laufzeit-Informationen zum Query-Cache angezeigt: (hier ein Beispiel unseres gerade frisch aktivierten Query-Cache)
Einen weiteren interessanten (kostenpflichtigen) Artikel dazu finden Sie auch unter der IX Webseite: http://www.heise.de/ix/artikel/2003/02/040/

Die MySQL Dokumentation (Version 5.1) finden Sie unter dem Link: http://dev.mysql.com/doc/refman/5.1/de/query-cache.html

Viel Spaß noch beim Optimieren. Sie können uns und den Lesern ja mal Ihrer Erfahrungen über die Vor- oder Nachteile des Query-Caches schreiben. Auf Feedback sind wir immer neugierig. [FS]
Mitglied: Frank
24.02.2005 um 14:51 Uhr
Kleine Ergänzung:

Mann kann den Query-Cache auch mit:
prüfen.

Um alle Ergebnisse anzuzeigen:

Bitte warten ..
Mitglied: Frank
26.05.2007 um 12:33 Uhr
Hi @all,

eine paar Änderungen:

Tragen sie dazu in die MySQL Konfigdatei: "/etc/my.cnf" die Zeile: "set-variable =
query_cache_size=1000000" ein.

seit der MySQL Version 5 kann man in der "/etc/my.cnf" das "set-variable =" weglassen (ich habe es im Original-Beitrag schon korrigiert).
Es reicht also:
Hier die Erklärung zu den zusätzlichen Parameter:
Bitte warten ..
Mitglied: 49880
21.06.2007 um 11:07 Uhr
Hallo,

ich habe meine my.cnf folgendermaßen geändert.
Der Cache funktioniert soweit auch. Allerdings ist der Cache nach einem Neustart wieder leer. Ist das normal? Kann man das so konfigurieren, das der Cache erhalten bleibt?

Vielen Dank für das Tut und Viele Grüße
bitverdreher
Bitte warten ..
Mitglied: bennos
16.02.2008 um 16:25 Uhr
Ja das ist normal.

Der Query Cache liegt im RAM und ist logischerweise nach einem reboot leer.

als ergänzung kann ich immer empfehlen
http://www.mysqlperformanceblog.com

gute infos über performance einzelner STorage Engines, sowie benchmark und Standard Konfig von DB's.

bennos
Bitte warten ..
Ähnliche Inhalte
CMS
Freie Wähler Bayern MySQL PW online
Information von sabinesCMS6 Kommentare

Die Typo3 Installation der Freien Wähler Bayern scheint wohl längere Zeit nicht mehr angefasst und/oder fehlkonfiguriert zu sein. Nach ...

Datenbanken
MySQL Upgrade 80015 auf 80016 Fehler
Information von FrankDatenbanken2 Kommentare

Hallo Mysql User, mit dem neuesten Upgrade von Version 80015 auf 80016 wurde der automatische Upgrade Vorgang von Oracle ...

PHP

PHP Update sorgt für MySQL Ausfälle - caching sha2 password funktioniert plötzlich nicht mehr

Information von FrankPHP

Hallo Administratoren, heute Morgen hatten wir einen ärgerlichen Ausfall der Administrator.de Seite. Schuld war das neueste Sicherheits-Update von PHP ...

Neue Wissensbeiträge
E-Books

Ausgewählte Rheinwerk-Bücher jetzt online lesen! Kostenfrei

Information von Maxima2005 vor 14 StundenE-Books1 Kommentar

Vielleicht hat ja jemand Interesse sein Wissen zu erweitern. Ausgewählte Rheinwerk-Bücher jetzt online lesen! Grüße Max

Instant Messaging
Jitsi Meet - April Update verfügbar
Information von Frank vor 16 StundenInstant Messaging4 Kommentare

Im Rahmen des April-Updates erhält Jitsi Meet mehrere interessante Features. Anwender können nun nicht mehr nur ihren Bildschirm, sondern ...

Rechtliche Fragen

Rechtliche Grundlagen: Datenschutz und Datensicherheit im Homeoffice

Information von AnkhMorpork vor 1 TagRechtliche Fragen

Sollte bekannt sein, aber

Router & Routing
"Upgrade" Fritte 7520 zu Fritte 7530 :-)
Information von Lochkartenstanzer vor 1 TagRouter & Routing6 Kommentare

Moin, wie sich herausgestellt hat, ist die 7520 eine per Software kastrierte Version der 7530. Per "Chiptuning", um es ...

Heiß diskutierte Inhalte
Server-Hardware
Wie viel Speicher braucht eine Wissensdatenbank für bis zu 50 User?
Frage von Mrhallo19981Server-Hardware38 Kommentare

Hallo, könnt ihr mir sagen wieviel Speicherplatz eine Wissensdatenbank braucht (die physikalisch speichert, also nicht mit einer Datenbank zusammen) ...

Rechtliche Fragen
Nachweispflicht für Status-Emails?
Frage von VincentGdGRechtliche Fragen36 Kommentare

Moin. Mein Kollege und Datenschutzbeauftragter erfreut mich täglich mit neuen Auslegungen. Heute erklärt er mir, wir müssen die Status-Emails, ...

Festplatten, SSD, Raid
Festplatten Datenvernichtung Server
Frage von survial555Festplatten, SSD, Raid29 Kommentare

Hallo, ich habe noch ein paar alte Server, wo ich die verbauten Festplatten gerne datentechnisch "sicher" löschen möchte. Leider ...

Linux
Internetprobleme mit Wine für Linux um .exe Dateien auszuführen
Frage von WinLiCLILinux22 Kommentare

Hallo zusammen, ich möchte auf meinem debian 10 einen client für cloud-telefonie (cloud pbx) installieren, den es nur für ...