


Analysieren Sie die Startmethode und die Parameter des MySQL-Cache (query_cache_size).
MySQLAbfrage-Cache wird seit Version 4.1 bereitgestellt, aber es lohnt sich, ihn heute zu studieren. In der Standardkonfiguration ist diese Funktion von MySQL nicht aktiviert. Möglicherweise stellen Sie fest, dass der Wert der Variablen have_query_cache für MYSQL-Anfänger „Ja“ lautet Es ist leicht zu glauben, dass, wenn dieser Parameter JA ist, dies bedeutet, dass Cache aktiviert ist. Tatsächlich ist dies falsch Die aktuelle Version von MYSQL unterstützt den Abfrage-Cache. Ob der Abfrage-Cache aktiviert wird, hängt tatsächlich vom Wert eines anderen Parameters ab: query_cache_size. Der Wert ist 0, was bedeutet, dass der Abfrage-Cache deaktiviert ist und die Standardkonfiguration 0 ist. Konfigurationsmethode:
Konfigurationsdatei
my.ini oder my.cnf von MYSQL:
# Der Abfrage-Cache wird verwendet, um SELECT-Ergebnisse zwischenzuspeichern und später zurückzugeben. Wenn Ihre# viele identische Abfragen haben und sich die Tabellen selten ändern, sehen Sie sich die Statusvariable
# „Qcache_lowmem_prunes“ an, um zu überprüfen, ob der aktuelle Wert
# hoch genug ist für Ihre Last.
# Hinweis: Falls sich Ihre Tabellen sehr häufig ändern oder Ihre Abfragen
# sich jedes Mal textlich unterscheiden, kann der Abfragecache zu einem
führen # Verlangsamung statt Leistungsverbesserung.
query_cache_size=0
Die oben genannten Informationen sind die Standardkonfiguration und ihr
Kommentar
bedeutet, dass der Abfragecache von MYSQL zum Zwischenspeichern ausgewählter Abfrageergebnisse verwendet wird. Und wenn die gleiche Abfrageanfrage das nächste Mal eingeht, wird die eigentliche Abfrageverarbeitung nicht mehr durchgeführt, sondern die Ergebnisse werden direkt zurückgegeben. Ein solcher Abfragecache kann die Geschwindigkeit der Abfrage erhöhen und die Abfrageleistung optimieren Eine große Anzahl gleicher oder ähnlicher Abfragen ändert selten die Daten in der Tabelle, andernfalls besteht keine Notwendigkeit, diese Funktion zu verwenden. Sie können anhand des Werts der Variablen Qcache_lowmem_prunes überprüfen, ob der aktuelle Wert Ihrer aktuellen Systemlast entspricht. Hinweis: Wenn die von Ihnen abgefragte Tabelle
häufig aktualisiert wird
und selten dieselbe Abfrage enthält, ist es am besten, den Abfragecache nicht zu verwenden.
Spezifische Konfigurationsmethode:
1. Stellen Sie query_cache_size auf eine bestimmte Größe ein. Die spezifische Größe hängt von der tatsächlichen Situation der Abfrage ab, es ist jedoch am besten, sie auf ein Vielfaches von 1024 mit einem Referenzwert von 32 MB festzulegen. 2. Fügen Sie eine Zeile hinzu: query_cache_type=1Der Parameter query_cache_type wird verwendet, um den Cache-Typ zu steuern. Beachten Sie, dass dieser Wert nicht zufällig festgelegt werden kann und auf eine Zahl gesetzt werden muss.
Wenn auf 0 gesetzt, kann man sagen, dass Ihr Cache überhaupt nutzlos ist, was einer Deaktivierung gleichkommt. Aber muss das System in diesem Fall die durch query_cache_size festgelegte Größe zuweisen? Diese Frage muss getestet werden?
Wenn auf 1 gesetzt, werden alle Ergebnisse zwischengespeichert, es sei denn, Ihre Select-Anweisung verwendet SQL_NO_CACHE, um das Abfrage-Caching zu deaktivieren.
Bei Einstellung auf 2 werden nur die Abfragen zwischengespeichert, die über SQL_CACHE in der SELECT-Anweisung zwischengespeichert werden müssen. OK, einige der Dateien nach der Konfiguration lauten wie folgt:
query_cache_size=128M
query_cache_type=1
Speichern Sie die Datei, starten Sie den MYSQL-Dienst neu und starten Sie dann Abfrage durch Folgendes Überprüfen Sie, ob es wirklich aktiviert ist:
Hängt hauptsächlich davon ab, ob die Werte von query_cache_size und query_cache_type mit dem übereinstimmen, was wir festgelegt haben:
Der Wert von query_cache_size ist hier 134217728, wir setzen 128M, was eigentlich derselbe ist, aber die Einheiten sind unterschiedlich. Sie können ihn selbst umrechnen: 134217728 = 128*1024*1024.
query_cache_type ist auf 1 gesetzt und wird als ON angezeigt. Dies wurde bereits erwähnt.
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 | 134217728 | | query_cache_type | ON | | query_cache_wlock_invalidate | OFF | +——————————+———–+ 6 rows in set (0.00 sec)
mysql> show status like ‘%Qcache%'; +————————-+———–+ | Variable_name | Value | +————————-+———–+ | Qcache_free_blocks | 1 | | Qcache_free_memory | 134208800 | | Qcache_hits | 0 | | Qcache_inserts | 0 | | Qcache_lowmem_prunes | 0 | | Qcache_not_cached | 2 | | Qcache_queries_in_cache | 0 | | Qcache_total_blocks | 1 | +————————-+———–+ 8 rows in set (0.00 sec)
这里顺便解释下这个几个参数的作用:
Qcache_free_blocks:表示查询缓存中目前还有多少剩余的blocks,如果该值显示较大,则说明查询缓存中的内存碎片过多了,可能在一定的时间进行整理。
Qcache_free_memory:查询缓存的内存大小,通过这个参数可以很清晰的知道当前系统的查询内存是否够用,是多了,还是不够用,DBA可以根据实际情况做出调整。
Qcache_hits:表示有多少次命中缓存。我们主要可以通过该值来验证我们的查询缓存的效果。数字越大,缓存效果越理想。
Qcache_inserts: 表示多少次未命中然后插入,意思是新来的SQL请求在缓存中未找到,不得不执行查询处理,执行查询处理后把结果insert到查询缓存中。这样的情况的次数,次数越多,表示查询缓存应用到的比较少,效果也就不理想。当然系统刚启动后,查询缓存是空的,这很正常。
Qcache_lowmem_prunes:该参数记录有多少条查询因为内存不足而被移除出查询缓存。通过这个值,用户可以适当的调整缓存大小。
Qcache_not_cached: 表示因为query_cache_type的设置而没有被缓存的查询数量。
Qcache_queries_in_cache:当前缓存中缓存的查询数量。
Qcache_total_blocks:当前缓存的block数量。
下边我们测试下:
比如执行如下查询语句
mysql> select * from user where id = 2; +—-+——-+ | id | name | +—-+——-+ | 2 | test2 | +—-+——-+ 1 row in set (0.02 sec)
然后执行show status like ‘%Qcache%',看看有什么变化:
mysql> show status like ‘%Qcache%'; +————————-+———–+ | Variable_name | Value | +————————-+———–+ | Qcache_free_blocks | 1 | | Qcache_free_memory | 134207264 | | Qcache_hits | 0 | | Qcache_inserts | 1 | | Qcache_lowmem_prunes | 0 | | Qcache_not_cached | 3 | | Qcache_queries_in_cache | 1 | | Qcache_total_blocks | 4 | +————————-+———–+ 8 rows in set (0.00 sec)
对比前面的参数值,我们发现Qcache_inserts变化了。Qcache_hits没有变,下边我们在执行同样的查询
select * from user where id = 2,按照前面的理论分析:Qcache_hits应该等于1,而Qcache_inserts应该值不变(其他参数的值变化暂时不关注,读者可以自行测试),再次执行:
show status like ‘%Qcache%',看看有什么变化:
mysql> show status like ‘%Qcache%'; +————————-+———–+ | Variable_name | Value | +————————-+———–+ | Qcache_free_blocks | 1 | | Qcache_free_memory | 134207264 | | Qcache_hits | 1 | | Qcache_inserts | 1 | | Qcache_lowmem_prunes | 0 | | Qcache_not_cached | 4 | | Qcache_queries_in_cache | 1 | | Qcache_total_blocks | 4 | +————————-+———–+ 8 rows in set (0.00 sec)
OK,果然跟我们分析的完全一致。
Das obige ist der detaillierte Inhalt vonAnalysieren Sie die Startmethode und die Parameter des MySQL-Cache (query_cache_size).. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Fähigkeiten zur Verarbeitung von Big-Data-Strukturen: Chunking: Teilen Sie den Datensatz auf und verarbeiten Sie ihn in Blöcken, um den Speicherverbrauch zu reduzieren. Generator: Generieren Sie Datenelemente einzeln, ohne den gesamten Datensatz zu laden, geeignet für unbegrenzte Datensätze. Streaming: Lesen Sie Dateien oder fragen Sie Ergebnisse Zeile für Zeile ab, geeignet für große Dateien oder Remote-Daten. Externer Speicher: Speichern Sie die Daten bei sehr großen Datensätzen in einer Datenbank oder NoSQL.

Die MySQL-Abfrageleistung kann durch die Erstellung von Indizes optimiert werden, die die Suchzeit von linearer Komplexität auf logarithmische Komplexität reduzieren. Verwenden Sie PreparedStatements, um SQL-Injection zu verhindern und die Abfrageleistung zu verbessern. Begrenzen Sie die Abfrageergebnisse und reduzieren Sie die vom Server verarbeitete Datenmenge. Optimieren Sie Join-Abfragen, einschließlich der Verwendung geeigneter Join-Typen, der Erstellung von Indizes und der Berücksichtigung der Verwendung von Unterabfragen. Analysieren Sie Abfragen, um Engpässe zu identifizieren. Verwenden Sie Caching, um die Datenbanklast zu reduzieren. Optimieren Sie den PHP-Code, um den Overhead zu minimieren.

Das Sichern und Wiederherstellen einer MySQL-Datenbank in PHP kann durch Befolgen dieser Schritte erreicht werden: Sichern Sie die Datenbank: Verwenden Sie den Befehl mysqldump, um die Datenbank in eine SQL-Datei zu sichern. Datenbank wiederherstellen: Verwenden Sie den Befehl mysql, um die Datenbank aus SQL-Dateien wiederherzustellen.

Wie füge ich Daten in eine MySQL-Tabelle ein? Mit der Datenbank verbinden: Stellen Sie mit mysqli eine Verbindung zur Datenbank her. Bereiten Sie die SQL-Abfrage vor: Schreiben Sie eine INSERT-Anweisung, um die einzufügenden Spalten und Werte anzugeben. Abfrage ausführen: Verwenden Sie die Methode query(), um die Einfügungsabfrage auszuführen. Bei Erfolg wird eine Bestätigungsmeldung ausgegeben.

Eine der wichtigsten Änderungen, die in MySQL 8.4 (der neuesten LTS-Version von 2024) eingeführt wurden, besteht darin, dass das Plugin „MySQL Native Password“ nicht mehr standardmäßig aktiviert ist. Darüber hinaus entfernt MySQL 9.0 dieses Plugin vollständig. Diese Änderung betrifft PHP und andere Apps

So verwenden Sie gespeicherte MySQL-Prozeduren in PHP: Verwenden Sie PDO oder die MySQLi-Erweiterung, um eine Verbindung zu einer MySQL-Datenbank herzustellen. Bereiten Sie die Anweisung zum Aufrufen der gespeicherten Prozedur vor. Führen Sie die gespeicherte Prozedur aus. Verarbeiten Sie die Ergebnismenge (wenn die gespeicherte Prozedur Ergebnisse zurückgibt). Schließen Sie die Datenbankverbindung.

In der PHP-Entwicklung verbessert der Caching-Mechanismus die Leistung, indem er häufig aufgerufene Daten vorübergehend im Speicher oder auf der Festplatte speichert und so die Anzahl der Datenbankzugriffe reduziert. Zu den Cache-Typen gehören hauptsächlich Speicher-, Datei- und Datenbank-Cache. In PHP können Sie integrierte Funktionen oder Bibliotheken von Drittanbietern verwenden, um Caching zu implementieren, wie zum Beispiel Cache_get() und Memcache. Zu den gängigen praktischen Anwendungen gehören das Zwischenspeichern von Datenbankabfrageergebnissen zur Optimierung der Abfrageleistung und das Zwischenspeichern von Seitenausgaben zur Beschleunigung des Renderings. Der Caching-Mechanismus verbessert effektiv die Reaktionsgeschwindigkeit der Website, verbessert das Benutzererlebnis und reduziert die Serverlast.

Das Erstellen einer MySQL-Tabelle mit PHP erfordert die folgenden Schritte: Stellen Sie eine Verbindung zur Datenbank her. Erstellen Sie die Datenbank, falls sie nicht vorhanden ist. Wählen Sie eine Datenbank aus. Tabelle erstellen. Führen Sie die Abfrage aus. Schließen Sie die Verbindung.
