Heim  >  Artikel  >  Datenbank  >  MySQL Advanced 16 – Speicheroptimierung

MySQL Advanced 16 – Speicheroptimierung

黄舟
黄舟Original
2017-01-14 11:45:421227Durchsuche

1. MyISAM-Speicheroptimierung

Die MyISAM-Speicher-Engine verwendet key_buffer zum Zwischenspeichern des Indexmoduls, um das Lesen und Schreiben von Indizes zu beschleunigen. Für die Datenblöcke der MyISAM-Tabelle verfügt MySQL über keinen speziellen Caching-Mechanismus und verlässt sich vollständig auf den IO-Cache des Betriebssystems.

1. key_buffer_size-Einstellung

key_buffer_size bestimmt die Größe der MyISAM-Indexblock-Cache-Partition. Wirkt sich direkt auf die Zugriffseffizienz von MyISAM-Tabellen aus. Für eine allgemeine MyISAM-Datenbank wird empfohlen, 1/4 des verfügbaren Speichers key_buffer_size:
zuzuweisen
key_buffer_size=2G

2. read_buffer_size

Wenn Sie MyISAM-Tabellen häufig nacheinander scannen müssen, können Sie die Leistung verbessern, indem Sie den Wert von read_buffer_size erhöhen. Es ist jedoch zu beachten, dass read_buffer_size für jede Sitzung exklusiv ist. Wenn der Standardwert zu groß ist, führt dies zu Speicherverschwendung.

3. read_rnd_buffer_size

Bei MyISAM-Tabellenabfragen, die sortiert werden müssen, wie z. B. SQL mit einer Order by-Klausel, kann eine entsprechende Erhöhung des Werts von read_rnd_buffer_size die Leistung solcher SQL verbessern. Es ist jedoch zu beachten, dass read_rnd_buffer_size exklusiv ist. Wenn der Standardeinstellungswert zu groß ist, führt dies zu Speicherverschwendung.

2. InnoDB-Speicheroptimierung

InnoDB verwendet einen Speicherbereich als E/A-Cache-Pool. Dieser Cache-Pool wird nicht nur zum Zwischenspeichern von InnoDB-Indexblöcken, sondern auch zum Zwischenspeichern von InnoDB-Datenblöcken verwendet.

1. Legen Sie Innodb_buffer_pool_size
fest
Das Ausmaß der Änderung bestimmt die maximale Cachegröße der Tabellendaten und Indexdaten der InnoDB-Speicher-Engine.

2. innodb_log_buffer_size

Bestimmt die Größe des InnoDB-Redo-Log-Cache, wodurch verhindert werden kann, dass InnoDB unnötige Log-Schreibvorgänge auf die Festplatte ausführt, bevor die Transaktion festgeschrieben wird.

3. Passen Sie die MySQL-Parameter im Zusammenhang mit der Parallelität an

1. Passen Sie max_connections
an
Verbessern Sie gleichzeitige Verbindungen

2. Passen Sie thread_cache_size
an
Um die Verbindung zur Datenbank zu beschleunigen, speichert MySQL eine bestimmte Anzahl von Kundendienst-Threads zur Wiederverwendung zwischen. Die Anzahl der MySQL-Cache-Client-Threads kann über den Parameter thread_cache_size gesteuert werden.

3. innodb_lock_wait_timeout

Steuern Sie die Zeit, die InnoDB-Transaktionen auf Zeilensperren warten. Bei schnell verarbeiteten SQL-Anweisungen können Sie das Wartezeitlimit für Zeilensperren erhöhen, um große Rollback-Vorgänge zu vermeiden.

Hinweis: Die oben genannten Punkte werden alle in die Datei my.ini im MySQL-Verzeichnis umgeschrieben.

Das Obige ist der Inhalt von MySQL Advanced 16 – Speicheroptimierung. Weitere verwandte Inhalte 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