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

Detaillierte Schritte zur Verwendung von Arthas in einem Docker-Container

Was kann Arthas für Sie tun? Arthas ist das Open-...

Beispielcode für horizontalen Linienstil „hr“

Code kopieren Der Code lautet wie folgt: <hr S...

Detaillierte Erklärung von react setState

Inhaltsverzeichnis Ist setState synchron oder asy...

Eine kurze Diskussion über React Native APP-Updates

Inhaltsverzeichnis App-Update-Prozess Grobes Flus...

Docker erstellt MySQL-Erklärung

1. MySQL-Image herunterladen Befehl: docker pull ...

Zusammenfassung von 6 Lösungen zur Implementierung des Singleton-Modus in JS

Vorwort Heute habe ich das Erzeugungsmuster im En...

Zusammenfassung der CSS-Schwebeelementanalyse

Float: links/rechts/keine; 1. Gleichstufiges Schw...

Grafisches Tutorial zur Installation und Konfiguration von MySQL (CentOS7)

1. Systemumgebung [root@localhost-Startseite]# ca...

Beispiel zum Aktivieren langsamer Abfragen in MySQL

Vorwort Das langsame Abfrageprotokoll ist eine se...

So legen Sie ein Kennwort für MySQL Version 5.6 auf dem Mac fest

MySQL kann bei der Installation festgelegt werden...

Beispielcode zur Konvertierung von http in https mit nginx

Ich schreibe gerade ein kleines Programm. Da die ...

Beschreiben Sie kurz die MySQL InnoDB-Speicher-Engine

Vorwort: Die Speicher-Engine ist der Kern der Dat...