Da die Anzahl der Besuche auf der Website des Unternehmens zunimmt (über 100.000 PV pro Tag), wird MySQL natürlich zum Engpass. In Bezug auf die MySQL-Optimierung ist die Optimierung der MySQL-Systemparameter das Grundlegendste. MySQL hat den größten Einfluss auf die Leistung der Webarchitektur und ist zudem ein wichtiger Kernbestandteil. Die ordnungsgemäße Optimierung der MySQL-Einstellungen wirkt sich direkt auf die Geschwindigkeit und Kapazität des Webs aus. Gleichzeitig stellt MySQL auch den am schwierigsten zu optimierenden Teil dar. Es erfordert nicht nur einige MySQL-Fachkenntnisse, sondern auch langfristige Beobachtung und Statistiken sowie erfahrungsbasierte Urteile und das anschließende Festlegen angemessener Parameter. Als Nächstes werfen wir einen Blick auf einige Grundlagen der MySQL-Optimierung und die Optimierung von MySQL selbst (my.cnf). Wir stellen einige Parameter vor, die einen größeren Einfluss auf die Leistung haben. Da die Optimierungseinstellungen der Datei my.cnf eng mit der Serverhardwarekonfiguration zusammenhängen, geben wir eine allgemeine 2U-Serverhardwareumgebung an: CPU: 2 Intel Xeon 2,4 GHz. Speicher: 4 GB DDR. Festplatte: SCSI. Als nächstes erklären wir basierend auf der obigen Hardwarekonfiguration und einer optimierten my.cnf: [mysqld] Port = 3306 Server-ID = 1 Socket = /tmp/mysql.sock Überladesperre #Vermeiden Sie externe Sperren von MySQL, verringern Sie die Fehlerwahrscheinlichkeit und verbessern Sie die Stabilität. Namensauflösung überspringen #Deaktivieren Sie MySQL bei der Durchführung der DNS-Auflösung für externe Verbindungen. Mit dieser Option können Sie die Zeit verkürzen, die MySQL für die DNS-Auflösung benötigt. Beachten Sie jedoch, dass bei Aktivierung dieser Option alle Autorisierungen für Remote-Host-Verbindungen die IP-Adressmethode verwenden müssen, da MySQL sonst die Verbindungsanforderung nicht normal verarbeiten kann! back_log = 384 Der Wert des Parameters #back_log gibt an, wie viele Anfragen in einem kurzen Zeitraum im Stapel 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 Warteschlange für eingehende TCP/IP-Verbindungen angibt. Verschiedene Betriebssysteme haben ihre eigenen Beschränkungen hinsichtlich der Warteschlangengröße. Der Versuch, den Backlog-Wert höher als das Limit Ihres Betriebssystems einzustellen, hat keine Auswirkungen. Der Standardwert ist 50. Für Linux-Systeme wird empfohlen, diesen Parameter auf eine Ganzzahl kleiner als 512 zu setzen. Schlüsselpuffergröße = 256 M #key_buffer_size gibt die für die Indizierung verwendete Puffergröße an. Eine Erhöhung kann die Indexverarbeitungsleistung verbessern. Bei Servern mit etwa 4 GB Arbeitsspeicher kann dieser Parameter auf 256 M oder 384 M eingestellt werden. Hinweis: Wenn dieser Parameterwert zu hoch eingestellt ist, verringert sich die Gesamteffizienz des Servers! max_allowed_packet = 4M Thread-Stapel = 256 KB Tabellencache = 128 KB Sortierpuffergröße = 6 M #Frage die Puffergröße ab, die beim Sortieren verwendet werden kann. Hinweis: Der diesem Parameter entsprechende zugewiesene Speicher ist exklusiv für jede Verbindung. Wenn 100 Verbindungen vorhanden sind, beträgt die tatsächlich zugewiesene Gesamtgröße des Sortierpuffers 100 × 6 = 600 MB. Daher beträgt die empfohlene Einstellung für Server mit etwa 4 GB Arbeitsspeicher 6–8 M. Lesepuffergröße = 4 M #Die Puffergröße, die für Leseabfragevorgänge verwendet werden kann. Wie sort_buffer_size ist auch der diesem Parameter entsprechende zugewiesene Speicher exklusiv für jede Verbindung. Join-Puffergröße = 8 M #Die Puffergröße, die für gemeinsame Abfragevorgänge verwendet werden kann. Wie sort_buffer_size ist auch der diesem Parameter entsprechende zugewiesene Speicher exklusiv für jede Verbindung. myisam_sort_buffer_size = 64 M Tabellencache = 512 Thread-Cache-Größe = 64 Abfrage-Cachegröße = 64 M #Geben Sie die Größe des MySQL-Abfragepuffers an. Sie können in der MySQL-Konsole beobachten, dass ein sehr großer Wert von Qcache_lowmem_prunes darauf hinweist, dass der Puffer häufig nicht ausreicht; ein sehr großer Wert von Qcache_hits darauf hinweist, dass der Abfragepuffer sehr häufig verwendet wird. Ein kleiner Wert beeinträchtigt die Effizienz. In diesem Fall können Sie erwägen, den Abfragepuffer nicht zu verwenden; ein sehr großer Wert von Qcache_free_blocks weist darauf hin, dass sich viele Fragmente im Puffer befinden. temporäre Tabellengröße = 256 M max_Verbindungen = 768 #Geben Sie die maximale Anzahl von Verbindungsvorgängen an, die von MySQL zugelassen werden. Wenn beim Zugriff auf das Forum häufig die Fehlermeldung „Zu viele Verbindungen“ erscheint, müssen Sie den Wert dieses Parameters erhöhen. max_connect_errors = 10000000 Wartezeitüberschreitung = 10 #Geben Sie die maximale Verbindungszeit für eine Anfrage an. Für einen Server mit etwa 4 GB Speicher kann sie auf 5-10 eingestellt werden. Thread_Parallelität = 8 #Der Wert dieses Parameters ist die Anzahl der logischen CPUs auf dem Server*2. In diesem Beispiel hat der Server 2 physische CPUs und jede physische CPU unterstützt HT-Hyperthreading, daher ist der tatsächliche Wert 4*2=8 Überspringen-Netzwerken #Das Aktivieren dieser Option kann den TCP/IP-Verbindungsmodus von MySQL vollständig beenden. Wenn der WEB-Server über eine Remote-Verbindung auf den MySQL-Datenbankserver zugreift, aktivieren Sie diese Option nicht! Ansonsten funktioniert die Verbindung nicht! Tabellencache = 1024 #Je größer der physische Speicher, desto größer die Einstellung. Der Standardwert ist 2402 und die beste Einstellung ist 512-1024 innodb_additional_mem_pool_size = 4M #Standard ist 2M innodb_flush_log_at_trx_commit = 1 #Auf 0 setzen, um zu warten, bis die innodb_log_buffer_size-Warteschlange voll ist, bevor sie alle zusammen gespeichert werden. Der Standardwert ist 1 innodb_log_buffer_size=2M #Standard ist 1M innodb_thread_concurency=8 #Stellen Sie es auf die Anzahl der CPUs auf Ihrem Server ein. Der Standardwert ist normalerweise 8. Schlüsselpuffergröße = 256 M #Der Standardwert ist 218, am besten auf 128 anpassen tmp_table_size=64M #Der Standardwert ist 16 M, passen Sie ihn für die beste read_buffer_size=4 M auf 64-256 an #Standard ist 64K read_rnd_buffer_size=16M #Standard ist 256K Sortierpuffergröße = 32 M #Standard ist 256K Thread-Cache-Größe = 120 #Standard ist 60 query_cache_size=32M Beachten: 1. Wenn Key_reads zu groß ist, sollten Sie Key_buffer_size in my.cnf erhöhen, um Key_reads/Key_read_requests auf mindestens 1/100 zu halten, je kleiner, desto besser. 2. Wenn Qcache_lowmem_prunes groß ist, erhöhen Sie den Wert von Query_cache_size. Zusammenfassen Oben ist die vom Herausgeber eingeführte Optimierung der MySQL 4G-Speicherserverkonfiguration. Ich hoffe, sie ist für alle hilfreich. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken! Das könnte Sie auch interessieren:
|
<<: So installieren Sie Docker auf Raspberry Pi
Inhaltsverzeichnis 1. Oberflächliche Kopie 1. Obj...
Inhaltsverzeichnis Vorwort brauchen erreichen Ers...
Klicken Sie auf den Ankerlink, um reibungslos zu ...
Aufgrund der Anforderungen des Arbeitsprojekts is...
Inhaltsverzeichnis 1. Hash-Tabellenprinzip 2. Das...
Verwenden Sie ein Profil, um langsames SQL zu ana...
Flex(彈性布局) in CSS kann das Layout einer Webseite ...
MySQL 5.7.8 und höher unterstützt nun einen nativ...
Inhaltsverzeichnis Zeilen-Spalten-Konvertierung A...
Herzlichen Glückwunsch, dass Sie Ihren Chef endli...
Inhaltsverzeichnis Einzelne Inhaltsprojektion Mul...
Nachfragehintergrund: Fügen Sie dynamische GIF-Bi...
Wie in der Abbildung gezeigt: Portnutzung prüfen:...
Detaillierte Analyse der SQL-Ausführungsschritte ...
Es gibt offensichtliche Unterschiede zwischen der...