Serverkonfigurationen zum Hosten einer MySQL-Datenbank

Serverkonfigurationen zum Hosten einer MySQL-Datenbank

Ich habe eine Webanwendung, die eine MySQL-Datenbank verwendet, die auf einem virtuellen Server gehostet wird. Ich habe diesen Server verwendet, als ich die Anwendung gestartet habe und als die Datenbank noch sehr klein war. Jetzt ist sie gewachsen und der Server kann die Datenbank nicht verarbeiten, was häufig zu Datenbankfehlern führt. Ich plane, mir einen Server zuzulegen und brauche Vorschläge dafür.
Wie gesagt, die Datenbank ist jetzt 9 GB groß und wächst sehr schnell. Es gibt eine Reihe von Tabellen mit Millionen von Zeilen, die häufig aktualisiert und abgefragt werden. Der am häufigsten angezeigte Fehler der Datenbank ist Lock wait timeout exceeded. Früher gab es auch Fehler wie „Die Gesamtzahl der Sperren überschreitet die Größe der Sperrtabelle“, aber ich konnte sie vermeiden, indem ich die Größe des Innodb-Pufferpools erhöhte.
Bitte schlagen Sie vor, nach welchen Konfigurationen ich bei dem Server suchen sollte, den ich kaufen sollte. Ich habe irgendwo gelesen, dass die Pufferpoolgröße der Datenbank idealerweise größer sein sollte als die Größe ihrer Daten, also würde ich in meinem Fall wohl 9 GB Arbeitsspeicher benötigen. Auf welche anderen Dinge sollte ich bei dem Server achten?

Sagen Sie mir einfach, ob ich Ihnen weitere Informationen zu den

Antwort1

Sie können das Perl-Skript mit dem Namen verwendenMySQLTunerum eine Vorstellung davon zu bekommen, welche Variablen optimiert werden müssen und welche Hardware bei Bedarf aktualisiert werden muss.
Sie sollten die Einstellungen jedoch verstehen, bevor Sie sie ändern, da Sie sonst das Problem verschlimmern könnten.

Das Skript selbst enthält einen sehr aufschlussreichen Tipp:

*WARNUNG
Es ist äußerst wichtig, dass Sie jede Änderung, die Sie an einem MySQL-Datenbankserver vornehmen, vollständig verstehen. Wenn Sie Teile der Ausgabe des Skripts oder die Empfehlungen nicht verstehen, sollten Sie einen erfahrenen DBA oder sogar einen Systemadministrator Ihres Vertrauens konsultieren. Testen Sie Ihre Änderungen immer in Staging-Umgebungen und denken Sie immer daran, dass Verbesserungen in einem Bereich MySQL in anderen Bereichen negativ beeinflussen können.
*WARNUNG

Tolle Artikel zu diesem Thema finden Sie auf PerconasMySQL-Performance-Blog, AListe der Büchersich mit diesem Thema beschäftigen und sogar einen Screencast auf ihrempercona.tvWebseite.

Antwort2

Haben Sie die Lock-Wartezeit untersucht?

Sie können dies tun, indem Sie den InnoDB-Sperrmonitor aktivieren:

TABELLE ERSTELLEN innodb_lock_monitor(eine int) ENGINE=INNODB;

Verfolgen Sie dann Ihr MySQL-Fehlerprotokoll.

Um den Monitor zu deaktivieren, lassen Sie die Tabelle fallen.

HTH

verwandte Informationen