In diesem Artikel werden hauptsächlich relevante Informationen zu MySQL-Optimierungsbeispielen in Linux vorgestellt. Freunde in Not können sich auf
Linux-Paar beziehen. Detaillierte Erklärung von MySQL Optimierungsbeispiele
vim /etc/my.cnf Im Folgenden wird nur der Inhalt des Absatzes [mysqld] in der Datei my.cnf aufgeführt. Der Inhalt anderer Absätze hat kaum Auswirkungen auf die Laufleistung von MySQL, also vorerst vernachlässigen.
[mysqld] port = 3306 serverid = 1 socket = /tmp/mysql.sock skip-locking
Vermeiden Sie die externe Sperrung von MySQL, reduzieren Sie das Fehlerrisiko und verbessern Sie die Stabilität.
skip-name-resolve
Verbieten Sie MySQL die DNS-Auflösung für externe Verbindungen. Durch die Verwendung dieser Option kann MySQL Zeit für die DNS-Auflösung sparen. Es ist jedoch zu beachten, dass bei aktivierter Option alle Remote-Host-Verbindungsberechtigungen IP-Adressen verwenden müssen, da MySQL sonst Verbindungsanfragen nicht normal verarbeiten kann!
back_log = 384
Der Wert des back_log-Parameters gibt an, wie viele Anfragen in kurzer Zeit im Stack gespeichert werden können, bevor MySQL vorübergehend nicht mehr auf neue Anfragen reagiert. Wenn das System in kurzer Zeit viele Verbindungen hat, müssen Sie den Wert dieses Parameters erhöhen, der die Größe der Überwachungs-Warteschlange für eingehende TCP/IP-Verbindungen angibt. Verschiedene Betriebssysteme haben ihre eigenen Grenzen für diese Warteschlangengröße. Der Versuch, back_log auf einen höheren Wert als den Grenzwert Ihres Betriebssystems festzulegen, hat keine Auswirkung. Der Standardwert ist 50. Für Linux-Systeme wird empfohlen, den Wert auf eine Ganzzahl kleiner als 512 festzulegen.
key_buffer_size = 256M
key_buffer_size gibt die Puffergröße an, die für index verwendet wird. Erhöhen Sie sie für eine bessere Indexverarbeitungsleistung. Für Server mit einem Arbeitsspeicher von etwa 4 GB kann dieser Parameter auf 256 MB oder 384 MB eingestellt werden. Hinweis: Wenn Sie diesen Parameterwert zu groß einstellen, verringert sich die Gesamteffizienz des Servers!
max_allowed_packet = 4M thread_stack = 256K table_cache = 128K sort_buffer_size = 6M
Fragen Sie die Puffergröße ab, die beim Sortieren verwendet werden kann. Hinweis: Der diesem Parameter zugeordnete Speicher gilt exklusiv für jede Verbindung. Bei 100 Verbindungen beträgt die gesamte zugewiesene Sortierpuffergröße 100 × 6 = 600 MB. Daher wird empfohlen, ihn für einen Server mit einem Speicher von etwa 4 GB auf 6-8 MB einzustellen.
read_buffer_size = 4M
Die Puffergröße, die von Leseabfragevorgängen verwendet werden kann. Wie sort_buffer_size gilt auch der diesem Parameter zugeordnete Speicher exklusiv für jede Verbindung.
join_buffer_size = 8M
Die Puffergröße, die von der gemeinsamen Abfrage verwendet werden kann Wie bei sort_buffer_size gilt auch der diesem Parameter zugeordnete Speicher exklusiv für jede Verbindung.
myisam_sort_buffer_size = 64M table_cache = 512 thread_cache_size = 64 query_cache_size = 64M
Gibt die Größe des MySQL-Abfragepuffers an. Dies kann in der MySQL-Konsole beobachtet werden. Wenn der Wert von Qcache_lowmem_prunes sehr groß ist, weist dies darauf hin, dass die Pufferung häufig nicht ausreicht Wenn der Wert klein ist, wirkt sich dies auf die Effizienz aus. Dann können Sie erwägen, den Cache nicht abzufragen. Wenn der Wert sehr groß ist, bedeutet dies, dass sich viele Fragmente im Puffer befinden.
tmp_table_size = 256M max_connections = 768
Geben Sie die maximale Anzahl von Verbindungsvorgängen an, die MySQL zulässt. Wenn beim Zugriff auf das Forum häufig die Fehlermeldung „Too ManyConnections“ erscheint, müssen Sie den Wert dieses Parameters erhöhen.
max_connect_errors = 10000000 wait_timeout = 10
Geben Sie die maximale Verbindungszeit für eine Anfrage an. Für Server mit etwa 4 GB Speicher kann sie auf 5-10 eingestellt werden.
thread_concurrency = 8
Der Wert dieses Parameters ist die Anzahl der logischen Server-CPUs * 2. In diesem Beispiel verfügt der Server über 2 physische CPUs und jede physische CPU unterstützt H.T-Hyper-Threading. Der tatsächliche Wert lautet also 4 *2=8
skip-networking
Aktivieren Sie diese Option, um die TCP/IP-Verbindungsmethode von MySQL vollständig zu schließen. Wenn der WEB-Server über eine Remote-Verbindung auf den MySQL-Datenbank-Server zugreift, tun Sie dies Aktivieren Sie diese Option nicht! Andernfalls ist die normale Verbindung nicht möglich!
table_cache=1024
Je größer der physische Speicher, desto größer die Einstellung. Der Standardwert ist 2402, passen Sie ihn für eine optimale Einstellung auf 512-1024 an
innodb_additional_mem_pool_size=4M
Der Standardwert ist 2M
innodb_flush_log_at_trx_commit=1
Wenn Sie den Wert auf 0 setzen, müssen Sie warten, bis die innodb_log_buffer_size-Warteschlange voll ist, bevor Sie sie gleichmäßig speichern. Der Standardwert ist 1.
innodb_log_buffer_size=2M
Setzen Sie ihn auf Wie viele CPUs hat Ihr Server? Es wird empfohlen, den Standardwert 8 zu verwenden
innodb_thread_concurrency=8
key_buffer_size=256M #默认为218,调到128最佳 tmp_table_size=64M #默认为16M,调到64-256最挂 read_buffer_size=4M #默认为64K read_rnd_buffer_size=16M #默认为256K sort_buffer_size=32M #默认为256K thread_cache_size=120 #默认为60 query_cache_size=32M
Viele Situationen erfordern spezifische Angaben Analyse
1. Wenn Key_reads zu groß ist, sollten Sie die Key_buffer_size in my.cnf erhöhen und Key_reads/Key_read_requests auf mindestens 1/100 halten.
2. Wenn Qcache_lowmem_prunes sehr groß ist, erhöhen Sie den Wert von Query_cache_size.
Das obige ist der detaillierte Inhalt vonEine ausführliche Einführung zur Optimierung von MySQL unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!