Übersicht
MySQL ist ein äußerst vielseitiges und leistungsstarkes Verwaltungssystem für relationale Datenbanken, das von vielen webbasierten Paketen wie WordPress, Joomla und Magento verwendet wird. Während die Standardkonfiguration eine angemessene Leistung bietet, gibt es immer Möglichkeiten sicherzustellen, dass Sie die bestmögliche Geschwindigkeit aus Ihrer Datenbank herausholen.
Als Hosting-Anbieter werden wir ständig nach einem „schnelleren“ Server oder mehr Ressourcen gefragt, wobei dies in vielen Fällen dem Problem nicht helfen wird. Eine bessere Optimierung und Leistungsoptimierung Ihres bestehenden Setups sollte immer der erste Schritt sein.
Diese Anweisungen gelten nur für dedizierte oder virtuelle private Server (VPS). Wenn Sie Shared Hosting haben und eine bessere Datenbankleistung benötigen, sprechen Sie mit dem Conetix-Team über die Migration zu einem VPS.
Anleitung
Warnung! Stellen Sie sicher, dass Ihre Datenbank zuerst gesichert wurde, bevor Sie Änderungen vornehmen.
Eines der einfachsten Tools zur Diagnose von Problemen ist MySQLTuner. Dies ist ein Perl-basiertes Skript, das die aktuelle Leistung Ihres Datenbankdienstes analysiert.
Am besten führen Sie dieses Tool einige Stunden nach der Verwendung der Datenbank aus, nicht erst nach dem Neustart.
-
Laden Sie das MySQLTuner-Skript herunter:
wget https://raw.github.com/major/MySQLTuner-perl/master/mysqltuner.pl
-
Ausführungsberechtigungen hinzufügen:
chmod +x mysqltuner.pl
-
Führen Sie dann das Skript aus:
./mysqltuner.pl
Warnung! Obwohl MySQLTuner großartig darin ist, Ihnen eine erste Vorstellung davon zu geben, welche Einstellungen geändert werden müssen, verstehen Sie bitte was Sie ändern, bevor Sie Konfigurationen bearbeiten. Einige Änderungen können zu Leistungseinbußen und im schlimmsten Fall zu Datenverlust ohne angemessene Sorgfalt und Aufmerksamkeit führen.
Hier sind ein paar grundlegende Hinweise:
- Sehen Sie sich Ihre InnoDB-Speicherzuweisung (innodb_buffer_pool_size) an, um sicherzustellen, dass MySQL genügend Speicher zugewiesen wird.
- Suchen Sie nach Warnungen zu Joins, die ohne Indizes durchgeführt werden. Diese können möglicherweise sehr langsam ausgeführt werden, insbesondere wenn Sie eine große Anzahl von Zeilen haben.
- Auf fragmentierte Tabellen prüfen.
- Verwenden Sie den EXPLAIN-Befehl in MySQL, um Leistungsprobleme bei Ihren Abfragen zu ermitteln.
Es gibt viele weitere Tipps, Optimierungen und Verbesserungen, verwenden Sie die Vorschläge von MySQLTuner, um Ihnen zu helfen, in die richtige Richtung zu weisen, und führen Sie einige Google-Suchen zu diesem Problem durch. Wenn Sie ein Conetix-Kunde sind, können Sie ein Support-Ticket erstellen und wir führen völlig kostenlos einige grundlegende Analysen für Sie durch.
Weiterführende Literatur
- InnoDB-Leistungsoptimierung: http://dev.mysql.com/doc/refman/5.0/en/innodb-tuning.html
- Top-10-Leistungstipps von Oracle: https://wikis.oracle.com/pages/viewpage.action?pageId=27263381
- So indizieren Sie Joins mit MySQL:hackmysql.com/case4
- MySQL EXPLAIN erklärt: http://www.slideshare.net/phpcodemonkey/mysql-explain-explained