Die schlechteste Option besteht darin, die Ergebnisse nach Zeit zu sortieren und das erste zu nehmen. Wählen Sie * aus einem wobei Erstellungszeit<="2017-03-29 19:30:36" Sortieren nach Erstellungszeitpunkt desc Grenze 1 Obwohl diese Methode den aktuellsten Datensatz zum aktuellen Zeitpunkt abrufen kann, muss die Tabelle für jede Abfrage einmal durchlaufen werden, was bei Abfragen mit mehr als einer Million Datenpunkten zeitaufwändig ist. Bei limit werden zuerst alle Ergebnisse und dann das erste abgerufen, was unnötig viel Zeit und Platz in der Abfrage beansprucht. Und wenn Sie den aktuellsten Datensatz stapelweise abrufen müssen, z. B.: „Eine Bestelltabelle enthält Benutzer, Bestellzeiten und -mengen, und Sie müssen die aktuellsten Bestelldatensätze aller Benutzer gleichzeitig abfragen“, muss für die Abfrage jedes Benutzers die gesamte Tabelle einmal durchlaufen werden. Bei großen Datenmengen erhöht sich die Zeit exponentiell und kann nicht in der Praxis genutzt werden. Mittlere Strategie - Abfrage sortiert und gruppiert nach Wählen Sie * aus ( Wählen Sie * aus einem wobei Erstellungszeit<="2017-03-29 19:30:36" Sortieren nach Erstellungszeitpunkt desc ) Gruppierung nach Benutzer-ID Später stellte ich fest, dass ich mit „group by“ zwar nach der Parameterspalte von „group by“ gruppieren kann, aber nur ein Ergebnis zurückgibt. Nach genauer Beobachtung stellte ich fest, dass „group by“ den ersten Datensatz nach der Gruppierung zurückgibt. Standardmäßig wird die Zeit nach der Abfrage der Reihe nach sortiert. Sie müssen die Zeit daher zunächst in umgekehrter Reihenfolge sortieren, um die Zeit abzurufen, die der aktuellen am nächsten kommt. Diese Abfrage führt tatsächlich zwei Abfragen aus. Obwohl die Zeit viel schneller ist als bei der ersten Methode, kann sie weiter optimiert werden. Die beste Strategie besteht darin, die Methode max() in Kombination mit group by zu verwenden. Wählen Sie *,max(create_time) aus einem wobei Erstellungszeit<="2017-03-29 19:30:36" Gruppieren nach Benutzer-ID Dieser Satz kann so verstanden werden, dass der Ergebnisset nach der Benutzer-ID gruppiert wird und der Datensatz mit der längsten Zeit in jeder Gruppe übernommen wird. Dadurch ist eine stapelweise Abfrage der neuesten Datensätze möglich und es muss nur einmal durch die Tabelle gegangen werden, so dass die Ergebnisse auch bei sehr großen Datenmengen in kürzester Zeit vorliegen. Erweiterungen: Jetzt gibt es eine Asset-Ausstattungstabelle: base_assets_turn Abfrage des neuesten Vermögensverwalters Hinweis: Angenommen, die Anlagennummer ASSETS_ID=254 Die nächstbeste Option: Wählen Sie * aus Base_Assets_Turn wobei ASSETS_ID = 254 Sortieren nach Erstellungszeitpunkt desc Grenze 1 Mittlere Politik: wählen Sie * aus (wählen Sie * aus base_assets_turn wobei ASSETS_ID = 254 Sortiert nach Erstellungszeitpunkt, absteigend) tt GROUP BY tt.ASSETS_ID; Beste Strategie: Wie sollte also die beste Strategie formuliert werden? Hinterlassen Sie gerne eine Nachricht! Oben finden Sie die MySQL-SQL-Anweisung zum Abfragen des aktuellsten Datensatzes (Optimierung), die Ihnen vom Herausgeber zur Verfügung gestellt wurde. Ich hoffe, sie ist für alle hilfreich. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht! Das könnte Sie auch interessieren:
|
<<: Installation, Konfiguration und Verwendung des Process Daemon Supervisors unter Linux
>>: Beispielcode für ein einfaches, nahtlos scrollendes Karussell, implementiert mit nativem Js
1. Was ist Phantomlesen? Wenn bei einer Transakti...
Ich habe mir vor einiger Zeit Tik Tok angesehen u...
Projektanforderungen: Wenn Sie auf einen Produktb...
Vorwort Wenn der Code ausgeführt wird und ein Feh...
Inhaltsverzeichnis Verwenden von Slots in Vue: Sl...
Die Barrierefreiheit von Webseiten scheint etwas z...
Inhaltsverzeichnis Frühe Erstellungsmethode Fabri...
Einführung Das MySQL-Protokoll für langsame Abfra...
Laden Sie zunächst das Installationspaket von der...
Automatische Sicherung der MySQL-Datenbank per Sh...
Was ist der Unterschied zwischen der grünen Versi...
Inhaltsverzeichnis Vorbereiten Fünf Waffen für … ...
1. Klicken Sie auf den Server-Host und dann in de...
Redis verwendet das Apline-Image (Alps) von Redis...
Vorwort Führen Sie den Befehl show create table &...