Ihr Prozess ist aufgrund der hohen Festplattenaktivität I/O
für SQL-Vorgänge langsam . Sie müssen innodb für intensive Operationen optimieren. Ändern Sie Ihre mysql-Konfigurationsdatei mit folgenden Zeilen:
innodb_buffer_pool_size = 4G innodb_log_buffer_size = 256M innodb_log_file_size = 1G innodb_write_io_threads = 16
innodb_buffer_pool_size: Der Speicherbereich, in dem InnoDB Tabellen- und Indexdaten zwischenspeichert. Wenn Tabellendaten im InnoDB-Pufferpool zwischengespeichert werden, kann durch Abfragen wiederholt auf sie zugegriffen werden, ohne dass Platten-E / A erforderlich sind. Datenänderungen werden zwischengespeichert und nicht sofort auf die Festplatte geschrieben.
Ein größerer Pufferpool erfordert weniger Platten-E / A, um mehrmals auf dieselben Tabellendaten zuzugreifen. Auf einem dedizierten Datenbankserver können Sie die Größe des Pufferpools auf 80% des physischen Arbeitsspeichers der Maschine festlegen, andernfalls wird 50 to 75
der Systemspeicher beansprucht. Die Standardgröße des Pufferpools beträgt 128 MB
innodb_log_buffer_size: Die Größe des Puffers in Bytes, den InnoDB in die Protokolldateien auf der Festplatte schreibt.
Ein großer Protokollpuffer ermöglicht die Ausführung großer Transaktionen, ohne dass das Protokoll vor dem Festschreiben der Transaktionen auf die Festplatte geschrieben werden muss. Wenn Sie also über viele Transaktionen verfügen, die viele Zeilen aktualisieren, einfügen oder löschen, wird durch die Vergrößerung des Protokollpuffers die Platten-E / A gespart.
innodb_log_file_size: Die Größe jeder Protokolldatei in einer Protokollgruppe in Byte. Eine große Größe stellt sicher, dass der Server Spitzen- und Tiefststände in der Workload-Aktivität ausgleichen kann. Dies bedeutet häufig, dass genügend Speicherplatz für die Protokollwiedergabe vorhanden ist, um mehr als eine Stunde Schreibaktivität zu verarbeiten. Je größer der Wert ist, desto weniger Checkpoint-Flush-Aktivitäten sind im Pufferpool erforderlich, wodurch Platten-E / A gespart werden
Innodb_write_io_threads: Die Anzahl der E / A-Threads für Schreibvorgänge in InnoDB. Der Standardwert ist 4. InnoDB verwendet Hintergrundthreads, um verschiedene Arten von E / A-Anforderungen zu bedienen. . Sie können die Anzahl der Hintergrund-Threads konfigurieren, die E / A auf Datenseiten lesen und schreiben, mithilfe der Konfigurationsparameter innodb_read_io_threads und innodb_write_io_threads.
Diese Parameter geben die Anzahl der Hintergrund-Threads an, die für Lese- bzw. Schreibanforderungen verwendet werden. Jeder Hintergrundthread kann bis zu 256 ausstehende E / A-Anforderungen verarbeiten.