Beispiele aus dem wirklichen LebenHaben wir festgestellt, dass viele Abfrageanweisungen im Unternehmen „select * xxxx“ lauten? Die Idee dahinter ist wohl, dass andere „select *“ geschrieben haben, also werde ich es auch schreiben und mir so eine Menge Ärger ersparen. Langsame Abfrage
Drei Indikatoren für langsamen Abfrage-Overhead in der Datenbank
Wenn Sie zum Index gehen wähle * von stu, wobei ID = 1; Der Index optimiert die Abfrage und gibt nur zehn Daten zurück. Wenn kein ID-Index vorhanden ist, wird geschätzt, dass auf Hunderte oder Tausende von Datenzeilen zugegriffen wird. Tipps: Verwenden Sie den Befehl EXPLAIN in MySQL, um die Anzahl der Zeilen anzuzeigen, die den Zeilen entsprechen Tatsächlich ist es am besten, nicht übereinstimmende Datensätze auf Speichermodulebene über „where“ herauszufiltern. Die zweitbeste Situation besteht darin, den Indextrefferscan abzudecken und nicht übereinstimmende Datensätze auf Serverebene über „where“ herauszufiltern, ohne zur Abfrage zur Tabelle zurückzukehren. Die beste Situation besteht darin, Daten aus der Datentabelle zurückzugeben und dann Datensätze herauszufiltern, die die Bedingungen nicht erfüllen. So optimieren SieVerwenden Sie die Indexabdeckung, um alle benötigten Spalten in den Index aufzunehmen, sodass wir nicht zur Abfrage in die Tabelle zurückkehren müssen und die Tabelle trennen können 3. Refaktorisieren Sie die Abfrage (Sie können eine große Abfrage in kleinere aufteilen) Zum Beispiel: count, limit, max() zählenDie beste Optimierung für „count“ besteht im Hinzufügen einer Übersichtstabelle, da „count“ zwangsläufig eine große Anzahl von Zeilen scannen muss. LimitBeim Paging kommt es häufig zu Einschränkungen, wie im folgenden Code gezeigt. Wähle die ID aus der Stu-Sortierung nach ID-Limit 1000,20; Diese Anweisung fragt 1020 Daten ab, verwirft dann die ersten 1000 und gibt die 20 Daten von 1000 bis 1020 zurück. Die beste Möglichkeit zur Optimierung besteht in der Verwendung des Index, sodass die Grenzabfrage in eine Abfrage mit bekannter Position umgewandelt werden kann. Maximalwert und Minimalwert Min&MaxStellen wir uns zunächst vor, dass wir bei Verwendung des Primärschlüsselindexes den ersten Wert bei der Abfrage als den Mindestwert verwenden, den wir zurückgeben möchten. Wir können auch den Primärschlüsselindex verwenden und die Datenmenge mit „limit“ steuern, um den Effekt der min()-Funktion zu erzielen und min zu ersetzen. ID auswählen von stu Verwenden Sie den Index (primay), wobei Adresse = „bj“, Grenze 1; Dadurch werden so wenige Datensätze wie möglich gescannt. Zum Abschluss noch zwei Fragen zur Entspannung. Finden Sie das zweithöchste Gehalt in der Tabelle „Mitarbeiter“ (Gehalt) +----+--------+ | ID | Gehalt | +----+--------+ | 1 | 100 | | 2 | 200 | | 3 | 300 | +----+--------+ Ergebnisse +---------------------+ | Zweithöchstes Gehalt | +---------------------+ | 200 | +---------------------+ Antwort: select max(Gehalt) ZweithöchstesGehalt vom Mitarbeiter wobei Gehalt < (max(Gehalt) auswählen) vom Mitarbeiter) Suchen Sie in der Tabelle „Person“ nach allen doppelten E-Mail-Adressen. +----+---------+ | ID | E-Mail | +----+---------+ | 1 | [email protected] | | 2 | [email protected] | | 3 | [email protected] | +----+---------+ Ergebnisse+---------+ | E-Mail | +---------+ | [email protected] | +---------+ Antwort: Wählen Sie „E-Mail von Person“ Gruppieren nach E-Mail mit Anzahl (E-Mail) >= 2; Dies ist das Ende dieses Artikels über MySQL-Select-Optimierungslösungen. Weitere relevante Inhalte zur MySQL-Select-Optimierung finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Zusammenfassung und Analyse häufig verwendeter Docker-Befehle und Beispiele
>>: CSS-Stil zum Zentrieren des HTML-Tags im Browser
Dieser Artikel stellt den Beispielcode zur Implem...
„explain“ wird verwendet, um Informationen zum Ab...
Während des Entwicklungsprozesses verwenden wir h...
Unabhängig davon, ob Sie ein Windows- oder Linux-...
Dieser Artikel stellt hauptsächlich die Implement...
Inhaltsverzeichnis 1. Staatshaken 1. Grundlegende...
1. Was ist Eventdelegation? Ereignisdelegierung: ...
Vue kapselt die Breadcrumb-Komponente zu Ihrer In...
1. Erzielen Sie den Effekt 2 Wissenspunkte 2.1 &l...
Als PHP7 herauskam, habe ich als Fan der neuesten...
Dieser Artikel stellt hauptsächlich die Beispiela...
Code kopieren Der Code lautet wie folgt: <span...
Gewünschte Wirkung: Nach dem Klick auf die Übermi...
1. Überprüfen Sie nach der Verbindung und Anmeldu...
Manchmal müssen wir eine ganze Datenspalte aus ei...