Ich baue eine Topliste für meine Website und statt alle 24 Stunden Treffer aufzeichnen und leeren die Datenbank würde ich gerne "innerhalb der letzten 24 Stunden" in und aus Treffer aufzeichnen Auf diese Weise wird die Toplist immer beschäftigt, egal zu welcher Zeit Sie es betrachten, während immer noch Ranking-Websites.PHP MySql Speichern von Daten für 24 Stunden
Also im Grunde muss ich einen Datensatz in die Datenbank hinzufügen einen 'in' Treffer (zum Beispiel) und die Entfernung etwa 24 Stunden später, oder einfach nicht berücksichtigen, wenn Sie die Websites rangieren.
Ich möchte die effizienteste Art und Weise, dies zu tun wissen, habe ich einige Ideen, aber sie scheinen alle wirklich Ressourcen schwer. Ich hoffe du verstehst was ich versuche zu erreichen :) Jede Hilfe wäre willkommen.
Das ist offensichtlich der Weg, hier zu gehen, imho. – n3rd
Es ist eine gute Lösung, aber wenn Sie wie viel Verkehr haben, würde ich das von vilx- betrachten, da es eine riesige Tabelle mit der Zeit – Flo
erstellen könnte, die "viel Verkehr" definiert. Wenn Sie alte Datensätze immer löschen, treffen Sie eine Menge auf den Index und die Datendatei, die nicht unbedingt ein Performance-Boot ist. Wenn Sie dies in Intervallen tun, brauchen Sie trotzdem irgendwas wie diesen WHERE-Klausel, um trotzdem genaue Ergebnisse zu erhalten und der Gewinn der INSERT/SELECT-Geschwindigkeit wegen der verringerten Datenmenge ist wahrscheinlich vernachlässigbar, wahrscheinlich sogar bis zum DELETE-Vorgang "aufgefressen" dauerte. Wenn Speicherplatz ein Problem ist (wenn!) Können Sie alte Aufzeichnungen von Zeit zu Zeit löschen, alle n Tage, wenn der Ölpreis fällt, wenn Ihr Nachbar von Aliens entführt wird (wieder) ... – VolkerK