Heim >Datenbank >MySQL-Tutorial >Methoden zur Optimierung von Datenbankabfragen

Methoden zur Optimierung von Datenbankabfragen

一个新手
一个新手Original
2017-10-13 10:45:294006Durchsuche

Datenbankabfrageoptimierung

Methoden zur Optimierung von Datenbankabfragen

1. Bei der Verwendung von Indizes

sollte versucht werden, vollständige Tabellenscans zu vermeiden, zuerst überlegen, wo und nach „Erstellen“ sortieren ein Index der an der Gruppe beteiligten Spalten
by.

2. SQL-Anweisungen optimieren

  • Die Verwendung von EXPLAIN (Abfrageoptimierungsartefakt) kann hilfreich sein Wählen Sie bessere Indizes und optimierte Abfrageanweisungen und schreiben Sie besser optimierte Anweisungen.

  • Verwenden Sie „select * from table“ nirgendwo, ersetzen Sie „*“ durch eine bestimmte Feldliste und geben Sie keine nicht verwendeten Felder zurück.


  • Führen Sie keine Operationen aus und verwenden Sie keine Funktionen für Indexspalten.
  • Die Abfrage nutzt das Limit so weit wie möglich, um die Anzahl der zurückgegebenen Zeilen zu reduzieren und so die Datenübertragungszeit und
  • Bandbreitenverschwendung zu reduzieren.


3. Datenbankobjekte optimieren

    Datentyp der Tabelle optimieren
  • Verfahren verwenden Die Funktion „analysieren( )“ analysiert die Tabelle und diese Funktion kann Optimierungsvorschläge für die Datentypen der Spalten in der Tabelle machen. Verwenden Sie klein, wenn Sie können. Das erste Prinzip von Tabellendatentypen lautet: Verwenden Sie den kürzesten Typ, der Daten korrekt darstellen und speichern kann. Dadurch wird die Nutzung von Festplattenspeicher, Arbeitsspeicher und CPU-Cache reduziert.

  • Teilen Sie die Tabelle auf
  • * Vertikale Aufteilung

    Fügen Sie den Primärschlüssel und einige Spalten in eine Tabelle ein und fügen Sie dann den Primärschlüssel und andere Spalten in die Mitte einer anderen Tabelle ein. Wenn einige Spalten in einer Tabelle häufig verwendet werden und andere nicht, können Sie die vertikale Aufteilung verwenden.
    * Horizontale Aufteilung
    Fügen Sie die Datenzeilen basierend auf den Werten einer oder mehrerer Datenspalten in zwei unabhängige Tabellen ein.

  • Verwenden Sie eine Zwischentabelle, um die Abfragegeschwindigkeit zu verbessern
  • Erstellen Sie eine Zwischentabelle. Die Tabellenstruktur entspricht genau der Struktur der Quelltabelle und überträgt die zu zählenden Daten an die Zwischentabelle Tabelle, und führen Sie dann Operationen an der Zwischentabelle aus Statistiken, erhalten Sie die gewünschten Ergebnisse


4. Hardware-Optimierung

    CPU-Optimierung
  • Wählen Sie Multi-Core und eine CPU mit hoher Taktrate.


  • Speicheroptimierung
  • Verwenden Sie größeren Speicher. Weisen Sie MYSQL so viel Speicher wie möglich zum Caching zu.


  • Optimierung von Festplatten-E/A
  • * Festplatten-Array verwenden

    * Festplattenplanungsalgorithmus anpassen
    Geeigneten Festplattenplanungsalgorithmus auswählen, um die Festplattensuchzeit zu reduzieren

5. Optimierung von MySQL selbst

Bei der Optimierung von MySQL selbst geht es hauptsächlich um die Parameter in seiner Konfigurationsdatei my.cnf
Optimierungsanpassungen vornehmen. Geben Sie beispielsweise die Größe des MySQL-Abfragepuffers an, geben Sie die maximale Anzahl der von MySQL zulässigen Verbindungsprozesse an usw.



6. Anwendungsoptimierung

Datenbankverbindungspool verwenden
  • Abfrage-Cache verwenden
  • Seine Aufgabe besteht darin, den Text der Auswahlabfrage und die entsprechenden Ergebnisse zu speichern. Wenn die gleiche Anfrage später empfangen wird, erhält der Server die Abfrageergebnisse direkt aus dem Abfragecache. Der Abfragecache eignet sich für Tabellen, die selten aktualisiert werden. Wenn sich die Daten in der Tabelle ändern, werden die relevanten Einträge im Abfragecache gelöscht

Das obige ist der detaillierte Inhalt vonMethoden zur Optimierung von Datenbankabfragen. 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