Wie bekomme ich alle n Zeilen in MySQL?

9

Ich habe eine Tabelle mit Daten, die jede Minute aufgezeichnet werden, also habe ich für jede Minute eine Zeile. Wenn die Daten zur Verarbeitung zurückgegeben werden, ist diese Genauigkeit für die letzten 6 Stunden erforderlich, aber danach ist ein niedrigeres Maß an Genauigkeit ausreichend, z. alle 5 Minuten.

Ich kann alle Daten in ein Array zurückgeben und dann alle bis auf jedes fünfte Element entfernen, aber das erfordert, dass alle Daten von MySQL zurückgegeben und dann zuerst in das Array eingelesen werden - ziemlich viele Daten.

Wie kann ich jede n-te Zeile in MySQL zurückgeben? Ich habe diesen Blogpost gelesen, der die Verwendung von primaryKey% 5 = 0 vorschlägt wo primaryKey ist auto_increment aber das

a) verwendet keine Indizes b) gibt nur primaryKey-Werte zurück, die durch 5 teilbar sind und im Falle von Löschungen möglicherweise nicht jede fünfte Zeile sind

Kann dies nur innerhalb der SQL-Abfrage durchgeführt werden, oder wird es erforderlich sein, Zeile für Zeile die Ergebnismenge mithilfe von Cursorn zu durchlaufen?

Ich verwende MySQLi in PHP, um eine Verbindung zur Datenbank herzustellen.

    
DavidM 02.02.2009, 10:49
quelle

2 Antworten

3

Die Liste der Zeitstempel alle 5 Minuten:

%Vor%

Sie können dies jetzt als Unterauswahl verwenden, um die angeforderten Protokolleinträge abzurufen, indem Sie logtimestamps mit first_of_five_minutes auf der Verknüpfung verknüpfen. Natürlich müssen zusätzliche WHERE -Klausen innerhalb und außerhalb repliziert werden, damit Sie die "richtigen" Zeitstempel erhalten.

Beachten Sie auch, dass dies den ersten Zeitstempel in jedem fünfminütigen Intervall zurückgibt, während Lösungen, die direkt minutes%5 = 0 verwenden, nur Ogentries zurückgeben, die tatsächlich ein Vielfaches von: 05 sind, was fehlschlagen kann, wenn Sie Verzögerungen bei der Aufzeichnung von Protokollen oder Ähnlichem haben .

    
David Schmitt 02.02.2009, 11:07
quelle
0

vollständig nicht getestet, aber das könnte funktionieren

%Vor%     
Learning 02.02.2009 10:57
quelle

Tags und Links