Dieser Artikel entstand aus der Hausaufgabe „Erlernen Sie Indexierungsfähigkeiten in einer Minute“. Angenommen, die Tabellenstruktur für die Auftragsabwicklung ist: Bestellung (oid, Datum, UID, Status, Geld, Zeit, …) In:
Angenommen, eine Bestellung hat drei Zustände: 0 wurde aufgegeben, 1 wurde bezahlt und 2 wurde abgeschlossen. Geschäftsanforderung: Abfrage nicht abgeschlossener Bestellungen, welches SQL ist schneller?
Fazit: Lösung 1 ist die langsamste, während die Lösungen 2, 3 und 4 alle den Index treffen können. Aber... 1: Union All kann definitiv den Index erreichen Wählen Sie * aus der Reihenfolge, in der Status = 0 ist Vereinigung alle Wählen Sie * aus der Reihenfolge, in der Status = 1 veranschaulichen: Sagen Sie MySQL direkt, was zu tun ist. MySQL verbraucht am wenigsten CPU Programmierer schreiben SQL nicht oft auf diese Weise (alles vereinigen). 2: Einfach in kann den Index treffen Wählen Sie * aus der Reihenfolge, in der der Status in (0,1) liegt. veranschaulichen: Lassen Sie MySQL nachdenken, die Abfrageoptimierung verbraucht mehr CPU als die Vereinigung aller, aber es ist vernachlässigbar Programmierer schreiben SQL (in) oft so. In diesem Beispiel wird empfohlen, es so zu schreiben Drei: Für oder kann die neue Version von MySQL den Index treffen Wählen Sie * aus der Reihenfolge, in der Status = 0 oder Status = 1 veranschaulichen: Lassen Sie MySQL nachdenken. Die Abfrageoptimierung verbraucht mehr CPU als IN. Belasten Sie MySQL nicht. Es wird Programmierern nicht empfohlen, „oder“ häufig zu verwenden, da nicht alle „oder“ den Index treffen. Für ältere MySQL-Versionen empfiehlt es sich, 4. Bei != treffen negative Abfragen definitiv nicht den Index Wählen Sie * aus der Reihenfolge, in der Status! = 2 veranschaulichen: Vollständiger Tabellenscan, die am wenigsten effiziente und langsamste aller Lösungen Negative Lookups sind verboten V. Weitere Optionen Wählen Sie * aus der Reihenfolge, in der der Status < 2 ist In diesem konkreten Beispiel ist es tatsächlich schnell, aber: Dieses Beispiel gibt nur drei Zustände an. Das tatsächliche Geschäft hat mehr als diese drei Zustände, und der „Wert“ des Zustands erfüllt gerade die partielle Ordnungsbeziehung. Was ist, wenn Sie andere Zustände prüfen möchten? SQL sollte sich nicht auf den Wert der Aufzählung verlassen, und die Lösung ist nicht universell. Dieses SQL ist schlecht lesbar, schlecht verständlich und schlecht wartbar. Es wird dringend davon abgeraten. 6. Hausaufgaben Kann eine solche Abfrage den Index treffen? Wählen Sie * aus der Reihenfolge, in der die UID in ( Wählen Sie die UID aus der Reihenfolge, in der der Status = 0 ist. ) select * from order where status in (0, 1) sortieren nach Datum absteigend Wählen Sie * aus der Reihenfolge, in der Status = 0 oder Datum <= CURDATE() Hinweis: Dies ist nur ein Beispiel. Seien Sie nicht zu pingelig, was die Rationalität des SQL für das jeweilige Unternehmen angeht. Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
<<: Methoden und Schritte zum Bereitstellen mehrerer War-Pakete in Tomcat
>>: Beispielcode zur Implementierung der Großbildanpassung auf dem PC mit vue+px2rem (REM-Anpassung)
Dieser Artikel beschreibt, wie die Koexistenz von...
1. Entpacken Sie die heruntergeladene Datei wie u...
Inhaltsverzeichnis Projektverzeichnis Docker-Date...
Inhaltsverzeichnis 1. Baidu Map API-Zugriff 2. Ve...
Inhaltsverzeichnis 1. Erster Blick auf COUNT 2. D...
Inhaltsverzeichnis Vorwort Einschränkungen prüfen...
Inhaltsverzeichnis 1. Aggregierte Abfrage 1. COUN...
Wie unten dargestellt: SELECT Anzahl(DISTINCT(a.r...
Inhaltsverzeichnis 1. Registrieren Sie ein Konto ...
In diesem Artikel wird der spezifische Code des j...
ylbtech_html_drucken HTML-Druckcode, unterstützt S...
html,Adresse, Blockzitat, Körper, dd, div, dl,dt,...
Ich habe immer das Gefühl, dass Designer die sens...
Während der Systemwartung müssen Sie möglicherwei...
Inhaltsverzeichnis Vorwort VMware-Klon virtueller...