Methode und Optimierungsprinzip für langsame MySQL-Abfragen

Methode und Optimierungsprinzip für langsame MySQL-Abfragen

1. Zum Vergleich der Datumsgröße muss das an XML übergebene Datumsformat „yyyy-MM-dd“ entsprechen, damit es indiziert werden kann, z. B.: „yyyy“ wird in „yyyy-MM-dd“ geändert, „yyyy-MM“ wird in „yyyy-MM-dd“ geändert [auf diese Weise konvertiert MySQL es in den Datumstyp]

2. Verwenden Sie in der bedingten Anweisung, unabhängig davon, ob sie gleich, größer als oder kleiner als ist, keine Funktionen, Ausdrücke oder mathematischen Operationen im bedingten Abfragefeld auf der linken Seite von WHERE

3. Versuchen Sie, die Reihenfolge der Felder in der WHERE -Bedingungsanweisung anzupassen, um die Abfragegeschwindigkeit zu verbessern, z. B. indem Sie das Indexfeld an den Anfang setzen, das Feld mit der höchsten Abfragetrefferquote an den Anfang setzen usw.

4. Stellen Sie sicher, dass die Abfrageergebnisse vor und nach der SQL-Optimierung konsistent sind

5. Schreiben Sie beim Abfragen den Befehl EXPLAIN vor die Abfrageanweisung, um zu testen, ob die Anweisung indiziert ist [Spezifische Verwendung Baidu]

6. Verwenden Sie nicht SELECT * FROM . Es sollten nur die erforderlichen Felder zurückgegeben werden. Geben Sie keine unnötigen Felder zurück.

7. Versuchen Sie, komplexe Abfragen zu zerlegen und Tabellenverknüpfungen auf Anwendungsebene statt auf SQL-Ebene durchzuführen.

8. Erstellen Sie Indizes für die Spalten, die in WHERE Klausel und ORDER BY -Klausel enthalten sind

9. Vermeiden Sie NULL -Beurteilung von Feldern in der WHERE Klausel [Sie können die Tabellenfelder ändern, den Standardwert von Zeichenfolgenfeldern auf空字符串, den Standardwert von numerischen Feldern auf 0 , den Standardwert von Datumsfeldern auf 1990-01-01 usw. festlegen.]

10. Vermeiden Sie die Verwendung != oder <> Operatoren in der WHERE Klausel

11. Vermeiden Sie die Verwendung OR Operators in der WHERE Klausel

12. BETWEEN AND statt IN

13. LIKE '%abc%' verwendet den Index nicht, aber LIKE 'abc%' verwendet den Index

14. Vermeiden Sie Ausdrucksoperationen auf Feldern

15. Vermeiden Sie die Durchführung von Funktionsoperationen auf Feldern

16. GROUP BY -Operation sortiert die Felder standardmäßig nach GROUP BY . Wenn Ihr Programm keine Sortierung benötigt, können Sie nach GROUP BY -Anweisung ORDER BY NULL hinzufügen, um die Sortierung zu entfernen.

17. Wenn es sich um ein numerisches Feld handelt, versuchen Sie, es als numerisches Feld zu gestalten. Vergraben Sie die Luke nicht vor den Kollegen, die es später nur aus Bequemlichkeit oder Faulheit pflegen werden.

18. Alle Felder in der Tabelle sind so konzipiert, dass sie NOT NULL sind

19. Wenn die Anzahl der zurückgegebenen Datensätze festgelegt ist, verwenden Sie die LIMIT Anweisung, um die Anzahl der zurückgegebenen Datensätze zu begrenzen. Wenn nur ein Datensatz benötigt wird oder nur ein Datensatz die Bedingungen erfüllt, wird empfohlen, LIMIT 1

20. Für Felder vom Typ Aufzählung (d. h. Felder mit festen Aufzählungswerten) wird empfohlen, ENUM statt VARCHAR zu verwenden, wie z. B. für Geschlecht, Woche, Typ, Kategorie usw.

21. Das Feld, in dem die IP-Adresse gespeichert wird, muss vom Typ UNSIGNED INT sein.

22. Vermeiden Sie die Verwendung der Funktionen NOW() , CURDATE() und RAND() in SQL [weil diese Methode dazu führt, dass MySQL den SQL-Cache nicht verwenden kann]. Sie können dies in die Übergabe von Parametern umwandeln.

23. Bei statistischen Abfragen [wie etwa der Abfrage der Gesamtdatenmenge mehrerer aufeinanderfolgender Monate oder der Abfrage von Veränderungen gegenüber dem Vorjahr oder Monat usw.] können Sie die Abfragegeschwindigkeit verbessern, indem Sie regelmäßige Abfragen durchführen und der Statistiktabelle Statistiken hinzufügen.

Zusammenfassen

Oben sind die vom Herausgeber vorgestellten Methoden und Optimierungsprinzipien für langsame MySQL-Abfragen aufgeführt. Ich hoffe, dass sie für alle hilfreich sind. 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!
Wenn Sie diesen Artikel hilfreich finden, können Sie ihn gerne abdrucken und dabei bitte die Quelle angeben. Vielen Dank!

Das könnte Sie auch interessieren:
  • MySQL Slow Query-Optimierung: Die Vorteile von Limit aus Theorie und Praxis
  • So optimieren Sie die MySQL-Leistung durch langsame MySQL-Abfragen
  • Beispiel-Tutorial zur Optimierung langsamer MySQL-Abfragen und zur Analyse des Protokolls langsamer Abfragen
  • Lösung zur Optimierung langsamer MySQL-Abfragen

<<:  Nutzungs- und Best-Practice-Handbuch für die Überwachung in Vue3

>>:  Detaillierte Erklärung der Verwendung von Bildschirmbefehlen in Linux

Artikel empfehlen

Warum der Befehl „explain“ MySQL-Daten ändern kann

Wenn Sie jemand fragen würde, ob die Ausführung v...

HTML-Grundlagen: HTML-Inhaltsdetails

Beginnen wir mit dem Körper: Wenn Sie eine Webseit...

css Alle Elemente ab dem n-ten abrufen

Der spezifische Code lautet wie folgt: <div id...

Fallzusammenfassung zur Vue-Komponentenkommunikationsmethode

Inhaltsverzeichnis 1. Übergeordnete Komponente üb...

So erreichen Sie die maximale Anzahl von Verbindungen in MySQL

Inhaltsverzeichnis Was ist der Grund für den plöt...

Analyse und Lösung des beim Start von MySQL gemeldeten Fehlers „ERROR:2002“

Vorwort Dieser Artikel stellt hauptsächlich die A...

Was Sie über die Transaktionsisolierung von msyql wissen müssen

Was ist eine Transaktion? Eine Transaktion ist ei...

Achten Sie bei der Webseitenerstellung auf die Verwendung von HTML-Tags

Dieser Artikel stellt einige Aspekte von HTML-Tag...

Linux /etc/network/interfaces Konfigurationsschnittstellenmethode

Die Datei /etc/network/interfaces wird in Linux z...

Schnellstart-Tutorial zum Nginx-Dienst

Inhaltsverzeichnis 1. Einführung in Nginx 1. Was ...

Eine kurze Analyse des Reaktionsprinzips und der Unterschiede von Vue2.0/3.0

Vorwort Seit der offiziellen Einführung von vue3....

mysql 5.7.18 winx64 Passwort ändern

Nachdem MySQL 5.7.18 erfolgreich installiert wurd...