Heim  >  Artikel  >  Datenbank  >  17 Punkte für die MySQL-Leistungsoptimierung

17 Punkte für die MySQL-Leistungsoptimierung

巴扎黑
巴扎黑Original
2017-05-20 14:06:461703Durchsuche

Datenbankadministratoren verbringen einen beträchtlichen Teil ihres Lebens damit, Optimierungen und Experimente durchzuführen, um die DBMS-Leistung zu verbessern. Wenn es um die Diagnose von Anwendungsverzögerungen und Leistungsproblemen geht, ist eine schlecht funktionierende Datenbank (und Datenbankabfrage) oft die häufigste Ursache.

Es ist ersichtlich, dass der folgende Inhalt die Leistung von MySQL nicht vollständig bestimmt. Wir möchten lediglich die wichtigsten Punkte der vorherigen Kapitel überprüfen und einen Ausgangspunkt für die Diskussion und Analyse der Leistungsoptimierung bieten.

Hier sind 17 Schlüsselpunkte für eine spezifische MySQL-Leistungsoptimierung:

1. Erstens gibt es für MySQL (wie alle DBMS) spezifische Hardware-Empfehlungen. Beim Erlernen und Recherchieren von MySQL funktioniert die Verwendung eines beliebigen alten Computers als Server. Bei Servern, die in der Produktion eingesetzt werden, sollten Sie sich jedoch an diese Hardware-Empfehlungen halten.

2. Im Allgemeinen sollte ein kritisches Produktions-DBMS auf einem eigenen dedizierten Server laufen.

3.MySQL ist mit einer Reihe von Standardeinstellungen vorkonfiguriert und es ist normalerweise sinnvoll, mit diesen Einstellungen zu beginnen. Nach einer Weile müssen Sie jedoch möglicherweise die Speicherzuweisung, die Puffergröße usw. anpassen. (Um die aktuellen Einstellungen anzuzeigen, verwenden Sie SHOW VARIABLES; und SHOW STATUS; .)

4.MySQL ist ein Mehrbenutzer- und Multithread-DBMS. Mit anderen Worten: Es führt oft mehrere Aufgaben gleichzeitig aus . Wenn eine dieser Aufgaben langsam ist, werden alle Anfragen langsam sein. Wenn Sie erhebliche Leistungseinbußen feststellen, verwenden Sie SHOW PROCESSLIST, um alle aktiven Prozesse (zusammen mit ihren Thread-IDs und Ausführungszeiten) anzuzeigen. Sie können auch den Befehl KILL verwenden, um einen bestimmten Prozess zu beenden (Sie müssen als Administrator angemeldet sein, um diesen Befehl verwenden zu können).

5. Es gibt immer mehr als eine Möglichkeit, dieselbe SELECT-Anweisung zu schreiben. Sie sollten mit Joins, Unions, Unterabfragen usw. experimentieren, um den besten Ansatz zu finden.

6. Verwenden Sie die EXPLAIN-Anweisung, um MySQL erklären zu lassen, wie eine SELECT-Anweisung ausgeführt wird.

7. Im Allgemeinen werden gespeicherte Prozeduren schneller ausgeführt, als jede MySQL-Anweisung einzeln auszuführen.

8. Es sollte immer der richtige Datentyp verwendet werden.

9. Rufen Sie niemals mehr Daten ab als erforderlich. Mit anderen Worten: Verwenden Sie nicht SELECT * (es sei denn, Sie benötigen wirklich jede Spalte).

10. Einige Operationen (einschließlich INSERT) unterstützen ein optionales Schlüsselwort DELAYED, das bei Verwendung die Kontrolle sofort an das aufrufende Programm zurückgibt und die Operation so schnell wie möglich tatsächlich ausführt.

11. Beim Importieren von Daten sollte die automatische Übermittlung deaktiviert sein. Möglicherweise möchten Sie auch Indizes (einschließlich FULLTEXT-Indizes) löschen und sie nach Abschluss des Imports neu erstellen.

12. Datenbanktabellen müssen indiziert werden, um die Leistung des Datenabrufs zu verbessern. Die Bestimmung, was indiziert werden soll, ist keine triviale Aufgabe und erfordert die Analyse der SELECT-Anweisungen, die zum Auffinden doppelter WHERE- und ORDER BY-Klauseln verwendet werden. Wenn eine einfache WHERE-Klausel zu lange braucht, um Ergebnisse zurückzugeben, können Sie daraus schließen, dass die darin verwendete(n) Spalte(n) das Objekt ist, das indiziert werden muss.

13. Enthält Ihre SELECT-Anweisung eine Reihe komplexer ODER-Bedingungen? Durch die Verwendung mehrerer SELECT-Anweisungen und einer sie verbindenden UNION-Anweisung können Sie dramatische Leistungsverbesserungen feststellen.

14. Indizes verbessern die Leistung beim Datenabruf, beeinträchtigen jedoch die Leistung beim Einfügen, Löschen und Aktualisieren von Daten. Wenn Sie über Tabellen verfügen, die Daten sammeln und nicht häufig durchsucht werden, indizieren Sie diese erst, wenn dies erforderlich ist. (Indizes können nach Bedarf hinzugefügt und entfernt werden.)

15.LIKE ist langsam. Im Allgemeinen ist es besser, FULLTEXT statt LIKE zu verwenden.

16. Datenbanken sind sich ständig verändernde Einheiten. Ein gut optimierter Tabellensatz kann nach einiger Zeit nicht mehr wiederzuerkennen sein. Wenn sich Tabellennutzung und -inhalt ändern, ändert sich auch die ideale Optimierung und Konfiguration.

17. Die wichtigste Regel ist, dass jede Regel unter bestimmten Bedingungen gebrochen wird.

[Verwandte Empfehlungen]

1. MySQL-kostenloses Video-Tutorial

2. MySQL-Diagnose-Startprobleme, detaillierte Erklärung zum Anzeigen von Protokolldateien

3. Detaillierte Erläuterung der Sicherung und Wartung der MySQL-Datenbank

4. Detaillierte Erläuterung des Beispiels für die Einstellung der MySQL-Zugriffsberechtigung

5. MySQL erstellt Benutzerkonten und löscht Benutzerkonten

Das obige ist der detaillierte Inhalt von17 Punkte für die MySQL-Leistungsoptimierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn