Heim > Datenbank > MySQL-Tutorial > Wie wählt man effizient die neuesten Datensätze in MySQL basierend auf mehreren Daten aus?

Wie wählt man effizient die neuesten Datensätze in MySQL basierend auf mehreren Daten aus?

Patricia Arquette
Freigeben: 2024-12-31 11:01:14
Original
409 Leute haben es durchsucht

How to Efficiently Select the Most Recent Records in MySQL Based on Multiple Dates?

Auswählen der neuesten Datensätze aus einer MySQL-Tabelle basierend auf mehreren Daten

In einer MySQL-Tabelle werden Daten mit Zeitstempeln, Methoden, IDs usw. gespeichert. und Antworten besteht das Ziel darin, die neuesten Datensätze für jede Kombination aus Methode und ID abzurufen.

Um dies zu erreichen, können Sie die folgenden Optimierungen verwenden Abfrage:

SELECT *
FROM (
    SELECT *,
    if(@last_method = method, 0, 1) AS new_method_group,
    @last_method := method
    FROM rpc_responses
    ORDER BY method, timestamp DESC
) AS t1
WHERE new_method_group = 1;
Nach dem Login kopieren

Diese Abfrage nutzt MySQL-Variablen, um die Notwendigkeit eines Joins zu vermeiden. Es wendet die folgenden Schritte an:

  1. Für jede Zeile in der Tabelle rpc_responses wird eine neue Gruppe für Methoden zugewiesen, um unterschiedliche Methodengruppen zu identifizieren.
  2. Zeilen mit derselben Methode gehören zu gleiche Gruppe.
  3. Die neueste Zeitstempelzeile innerhalb jeder Methodengruppe wird durch absteigende Sortierung nach Methode und Zeitstempel ausgewählt Reihenfolge.
  4. Die Abfrage filtert die Ergebnisse, um nur Zeilen einzubeziehen, die in jeder Methodengruppe die neuesten sind.

Dieser Ansatz ruft effizient die neueste Antwort für jede eindeutige Methodenkombination ab und ID, ohne dass eine Verbindung erforderlich ist, was zu einer optimalen Leistung führt.

Das obige ist der detaillierte Inhalt vonWie wählt man effizient die neuesten Datensätze in MySQL basierend auf mehreren Daten aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage