Heim  >  Artikel  >  Datenbank  >  Detaillierte Einführung in zehn Parameter zur Optimierung der MySQL-Leistung

Detaillierte Einführung in zehn Parameter zur Optimierung der MySQL-Leistung

黄舟
黄舟Original
2016-12-13 17:13:231129Durchsuche

(1), back_log:
Die Anzahl der für MySQL erforderlichen Verbindungen. Dies funktioniert, wenn der Haupt-MySQL-Thread in kurzer Zeit viele Verbindungsanfragen erhält und der Haupt-Thread dann einige Zeit (wenn auch nur kurz) benötigt, um nach Verbindungen zu suchen und einen neuen Thread zu starten.
Der back_log-Wert gibt an, wie viele Anfragen in kurzer Zeit im Stack gespeichert werden können, bevor MySQL vorübergehend keine neuen Anfragen mehr beantwortet. Nur wenn Sie viele Verbindungen in kurzer Zeit erwarten, müssen Sie ihn erhöhen, d. h. dieser Wert ist die Größe der Abhörwarteschlange für eingehende TCP/IP-Verbindungen. Ihr Betriebssystem hat seine eigene Grenze für diese Warteschlangengröße. Der Versuch, back_log auf einen höheren Wert als den Grenzwert Ihres Betriebssystems festzulegen, hat keine Auswirkung.
Wenn Sie Ihre Host-Prozessliste beobachten und eine große Anzahl von nicht authentifizierten Benutzern | back_log. Der Standardwert ist 50, ich habe ihn auf 500 geändert.

(2), Interactive_timeout:
Die Anzahl der Sekunden, die der Server auf eine Aktion bei einer interaktiven Verbindung wartet, bevor er diese schließt. Ein interaktiver Client ist als einer definiert, der die Option CLIENT_INTERACTIVE für mysql_real_connect() verwendet. Der Standardwert ist 28800, ich habe ihn auf 7200 geändert.

(3), key_buffer_size:
Der Indexblock wird gepuffert und von allen Threads gemeinsam genutzt. key_buffer_size ist die Puffergröße, die für Indexblöcke verwendet wird. Erhöhen Sie sie, um eine bessere Handhabung des Index zu erreichen (für alle Lese- und Mehrfachschreibvorgänge), und zwar so weit, wie Sie sich leisten können. Wenn Sie es zu groß machen, beginnt das System mit dem Paging und wird wirklich langsamer. Der Standardwert ist 8388600 (8 MB), mein MySQL-Host verfügt über 2 GB Speicher, also habe ich ihn in 402649088 (400 MB) geändert.

(4), max_connections:
Die Anzahl der gleichzeitig zulässigen Clients. Durch Erhöhen dieses Werts erhöht sich die Anzahl der von mysqld benötigten Dateideskriptoren. Diese Zahl sollte erhöht werden, da andernfalls häufig der Fehler „Zu viele Verbindungen“ auftritt. Der Standardwert ist 100, ich habe ihn auf 1024 geändert.

(5), record_buffer:
Jeder Thread, der einen sequentiellen Scan durchführt, reserviert einen Puffer dieser Größe für jede Tabelle, die er scannt. Wenn Sie viele aufeinanderfolgende Scans durchführen, möchten Sie diesen Wert möglicherweise erhöhen. Der Standardwert ist 131072 (128K), ich habe ihn in 16773120 (16M) geändert

(6), sort_buffer:
Jeder Thread, der sortiert werden muss, weist einen Puffer dieser Größe zu. Durch Erhöhen dieses Werts werden ORDER BY- oder GROUP BY-Vorgänge beschleunigt. Der Standardwert ist 2097144 (2M), ich habe ihn in 16777208 (16M) geändert.

(7), table_cache:
Die Anzahl der offenen Tabellen für alle Threads. Durch Erhöhen dieses Werts erhöht sich die Anzahl der von mysqld benötigten Dateideskriptoren. MySQL erfordert 2 Dateideskriptoren für jede eindeutige geöffnete Tabelle. Der Standardwert ist 64, ich habe ihn auf 512 geändert.

(8), thread_cache_size:
Die Anzahl der gespeicherten Threads, die wiederverwendet werden können. Wenn dies der Fall ist, wird der neue Thread aus dem Cache abgerufen. Wenn beim Trennen der Verbindung noch Platz vorhanden ist, wird der Thread des Clients im Cache abgelegt. Wenn viele neue Threads vorhanden sind, kann dieser Variablenwert zur Verbesserung der Leistung verwendet werden. Sie können die Rolle dieser Variablen erkennen, indem Sie die Variablen in den Zuständen „Connections“ und „Threads_created“ vergleichen. Ich habe es auf 80 eingestellt.

(9) MySQL-Suchfunktion
Verwenden Sie MySQL zum Suchen. Der Zweck besteht darin, die Groß-/Kleinschreibung zu berücksichtigen und auf Chinesisch zu suchen.
Geben Sie einfach --default-character- an, wenn Sie mysqld set=gb2312 starten

(10), wait_timeout:
Die Anzahl der Sekunden, die der Server auf eine Aktion bei einer Verbindung wartet, bevor er diese schließt. Der Standardwert ist 28800, ich habe ihn auf 7200 geändert.

Hinweis: Die Parameteranpassung kann durch Ändern der Datei /etc/my.cnf und Neustarten von MySQL erreicht werden. Dies ist eine relativ vorsichtige Aufgabe, und die oben genannten Ergebnisse sind nur einige meiner Meinungen. Sie können sie entsprechend den Hardwarebedingungen Ihres eigenen Hosts (insbesondere der Speichergröße) weiter modifizieren.

Vielen Dank fürs Lesen! Wenn Sie weitere verwandte Artikel erhalten möchten, achten Sie bitte auf die chinesische 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