Heim >Datenbank >MySQL-Tutorial >MySQL Advanced 16 – Speicheroptimierung
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 (m.sbmmt.com).