Ich habe im Internet unzählige my.cnf-Konfigurationen gelesen und die meisten der erwähnten Konfigurationen sind nichts weiter als diese: 1. innodb_buffer_pool_size Dann habe ich zwei Beispiele geschrieben, eines mit einem Thread und eines mit mehreren Threads, um zu testen, ob die Leistung durch die Änderung der Konfigurationsparameter verbessert wurde. Das Ergebnis zeigt, dass nur innodb_flush_log_at_trx_commit die Leistung verbessern kann. Für die Parameter 1, 2 und 3 gilt: Unabhängig davon, ob einer davon aktiviert ist oder alle drei gleichzeitig angepasst werden, wird die Testleistung nicht beeinträchtigt. Ich habe darüber nachgedacht und es könnte daran liegen, dass die Menge meiner Testdaten nicht groß genug war. Ich werde diese drei Parameter mit einer größeren Datenmenge testen, wenn die Bedingungen es erlauben. Hier ist eine detaillierte Beschreibung von innodb_flush_log_at_trx_commit: Wenn innodb_flush_log_at_trx_commit auf 0 gesetzt ist, wird der Protokollpuffer einmal pro Sekunde in die Protokolldatei geschrieben und gleichzeitig der Flush-Vorgang (Auf Festplatte löschen) der Protokolldatei ausgeführt. In diesem Modus wird beim Festschreiben einer Transaktion der Schreibvorgang auf die Festplatte nicht aktiv ausgelöst. Ergebnis : Wenn der Wert auf 0 gesetzt ist, ist dieser Modus der schnellste, aber weniger sicher. Ein Absturz des mysqld-Prozesses führt in der letzten Sekunde zum Verlust aller Transaktionsdaten. Hinweis : Aufgrund von Problemen bei der Prozessplanung kann nicht garantiert werden, dass dieser „Spülvorgang einmal pro Sekunde“ zu 100 % „pro Sekunde“ erfolgt. Fazit : Die Geschwindigkeit ist ähnlich, wenn innodb_flush_log_at_trx_commit auf 0 oder 2 gesetzt ist, und beide sind viel schneller, als wenn es auf 1 gesetzt ist. Dies erinnert mich an den Unterschied zwischen InnoDB- und MyISAM-Engines. Der Vorteil von InnoDB besteht darin, dass es bei gleichzeitiger Verarbeitung schneller ist als MyISAM. Die Anzahl meiner Thread-Pools wird entsprechend der Anzahl der CPU-Threads festgelegt. Dann habe ich die Anzahl der Thread-Pools so eingestellt, dass sie größer, größer und größer als die Anzahl der CPU-Threads ist. Dadurch verbesserte sich die Leistung meines Testprogramms erneut. Ich war betrunken. Es stellte sich heraus, dass mein Verständnis von Thread-Pools zu oberflächlich war. Optimale Thread-Pool-Größe Das könnte Sie auch interessieren:
|
<<: Das WeChat-Applet implementiert das Scrollen von Text
>>: Methoden zur Verbesserung der Zugriffskontrollsicherheit im Linux-Kernel
Vorwort Wenn Sie jemand fragt: „Was sind die Merk...
Die Bildintegrationstechnologie, die von YAHOO in...
Inhaltsverzeichnis Hintergrund 1. Die Abfragebedi...
Wenn Sie zusätzlichen Text in HTML als Auslassung...
So fügen Sie ein <script>-Skript in HTML ein...
Inhaltsverzeichnis 1. vorErstellen & erstellt...
Inhaltsverzeichnis 1. Einleitung 2. MySQL-Router ...
Bei der Verwendung von Docker-Compose für die Ber...
Asynchrone Replikation Die MySQL-Replikation erfo...
Das Daten-URI-Schema ermöglicht es uns, Daten mith...
Wenn es um den Verzeichniswechsel unter Linux geh...
1. Maria-Quelle hinzufügen vi /etc/yum.repos.d/Ma...
Funktionen von MySQL: MySQL ist ein relationales ...
Inhaltsverzeichnis 1. Was ist Pinia? 2. Pinia ist...
Der empfohlene Code zum Abspielen von Hintergrundm...