Heim  >  Artikel  >  Datenbank  >  Optimierung, die häufig in MySQL-Anwendungen verwendet wird

Optimierung, die häufig in MySQL-Anwendungen verwendet wird

黄舟
黄舟Original
2016-12-14 15:24:34990Durchsuche

Verbindungspool verwenden
Für den Zugriff auf die Datenbank ist der Verbindungsaufbau relativ teuer. Daher müssen wir einen „Verbindungspool“ einrichten, um die Zugriffsleistung zu verbessern. Wir können Verbindungen als Objekte oder Geräte behandeln. Es gibt viele Zugriffsstellen, die ursprünglich Verbindungen zur Datenbank erfordern. Der Pool weist vorübergehend Verbindungen für den Zugriff zu die Verbindung wieder her.
Reduzieren Sie den Zugriff auf MySQL
Vermeiden Sie den wiederholten Abruf derselben Daten:
Die Anwendung muss die Zugriffslogik auf die Datenbank und den Zugriff auf dieselbe Tabelle klären. Versuchen Sie, sich auf denselben SQL-Zugriff zu konzentrieren und diese zu extrahieren Ergebnisse auf einmal. Reduzieren Sie den wiederholten Zugriff auf die Datenbank.
MySQL-Abfragecache verwenden:
Funktion: Der Abfragecache speichert den Text der SELECT-Abfrage und die entsprechenden an den Client gesendeten Ergebnisse. Wenn anschließend eine identische Abfrage empfangen wird, ruft der Server die Abfrageergebnisse aus dem Abfragecache ab, ohne die Abfrage zu analysieren und auszuführen.
Anwendbarer Geltungsbereich: Tabellen, in denen keine Datenaktualisierungen stattfinden. Bei einer Änderung der Tabelle (einschließlich Tabellenstruktur und Tabellendaten) werden die relevanten Einträge des Abfrage-Cache-Werts gelöscht.
Hauptparametereinstellungen des Abfrage-Cache:
Variablen wie „%query_cache%“ anzeigen;
have_query_cache zeigt an, dass der Server während der Installation mit einem Cache konfiguriert wurde
query_cache_size gibt die Größe des Cache-Bereichs an M
Der Variablenwert von query_cache_type reicht von 0 bis 2, was jeweils bedeutet:
0 oder aus (Cache aus)
1 oder ein (Cache ein, außer bei Auswahl mit sql_no_cache)
2 oder Anforderung ( nur mit sql_cache select-Anweisung stellt Cache bereit)
In SHOW STATUS können Sie die Leistung des Abfragecaches überwachen:
Variablenbedeutung
Qcache_queries_in_cache Die Anzahl der im Cache registrierten Abfragen
Qcache_inserts Dem hinzugefügte Abfragen Cache-Nummer
Qcache_hits Anzahl der Cache-Beispiele
Qcache_lowmem_prunes Anzahl der Abfragen, die aufgrund von Speichermangel aus dem Cache entfernt wurden
Qcache_not_cached Anzahl der Abfragen, die nicht zwischengespeichert wurden (können nicht zwischengespeichert werden oder aufgrund von
QUERY_CACHE_TYPE)
Qcache_free_memory Fragen Sie die Gesamtzahl des freien Speichers im Cache ab
Qcache_free_blocks Fragen Sie die Anzahl der freien Speicherblöcke im Cache ab
Qcache_total_blocks Fragen Sie die Gesamtzahl der Blöcke im Cache ab
Cache-Ebene hinzufügen:
Cache (Cache), Memory (Speicher) und Hard Disk (Festplatte) sind beide Datenzugriffseinheiten, aber die Zugriffsgeschwindigkeiten sind in absteigender Reihenfolge sehr unterschiedlich. Die CPU kann mit hoher Geschwindigkeit auf Daten aus dem nächstgelegenen Cache zugreifen, anstatt mit einer um mehrere Größenordnungen niedrigeren Geschwindigkeit auf Daten aus dem Speicher und der Festplatte zuzugreifen. Bei den im Cache gespeicherten Daten handelt es sich häufig um Daten, auf die die CPU wiederholt zugreifen muss. Es gibt einen bestimmten Mechanismus (oder ein bestimmtes Programm), um die Trefferquote (Trefferrate) der Daten im Cache sicherzustellen. Daher wird die Geschwindigkeit, mit der die CPU auf Daten zugreift, nach der Anwendung des Caches erheblich verbessert.
Da der Cache-Manager für das Schreiben von Daten in den Cache verantwortlich ist, muss der Cache-Inhalt für Benutzer schreibgeschützt sein. Der Arbeitsaufwand für Sie ist sehr gering. Die SQL-Anweisungen im Programm unterscheiden sich nicht von denen beim direkten Zugriff auf das DBMS, und es gibt keinen Unterschied in den zurückgegebenen Ergebnissen. Datenbankanbieter stellen häufig Cache-bezogene Parameter in der DB-Server-Konfigurationsdatei bereit. Durch deren Änderung kann die Cache-Verwaltung für unsere Anwendungen optimiert werden.

Weitere verwandte Artikel finden Sie auf der chinesischen PHP-Website (www.php.cn)!

Stellungnahme:
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