Ich möchte etwas wie Snapchat erstellen, das Zeile nach 24 Stunden in PHP/MySQL automatisch löschen wird. Ich habe über Cron-Jobs gelesen, aber es verlangsamt Apps, also habe ich mich gefragt, ob es andere Möglichkeiten gibt, es zu tun?Zeile nach 24 Stunden automatisch aus der Datenbank löschen
Antwort
Was Sie aussehen ing bei etwas effektiv wie folgen aus:
DELETE FROM snaps WHERE created_at<=DATE_SUB(NOW(), INTERVAL 1 DAY)
Solange Sie bevölkern created_at
und indizieren, soll dies ziemlich schnell laufen. Wenn Sie viele Datensätze haben, und damit meine ich mehr als 100 Millionen, werden Sie brauchen Platz, dass aus:
DELETE FROM snaps ... LIMIT 10000
Wo Sie es in Stücke von 10K tun können, oder was auch immer am besten funktioniert.
Während es sicherlich eine schlechte Idee wäre, einen Cron-Job für jede Zeile Ihrer Datenbank hinzuzufügen, sehe ich kein Problem, einen Cron-Job laufen zu lassen (zB) jede Stunde (oder alle 30 Minuten oder einmal Tag), der jeden Eintrag löscht, der älter als 24 Stunden ist.
Sie können außerdem sicherstellen, dass bei der Abfrage keine Einträge zurückgeschickt werden, die älter als 24 Stunden sind.
Um Ihre Frage, gibt es viele Möglichkeiten, es zu tun:
- Cron-Job (außerhalb Ihrer app)
- In-App (Server-Seite) Job (SetTimeout in Knoten/js, javax. swing.Timer in Java, ETC.)
- Gewinde + sleep (bitte, dass nicht tun)
- Alarmsignal (Sie sollten wahrscheinlich nicht)
Aber statt Löschen auf ein Intervall und unter Berufung auf sie, schlage ich die folgenden, wird es auch Sie die Richtigkeit der genauen 24h geben (Sie es nicht erforderlich machen könnten, aber es ist trotzdem gut):
- Ihre Aufzeichnungen timestamped werden müssen (fast jeder Lösung erfordert dies)
- , wenn Sie die Datensätze lesen, Datensätze herauszufiltern, die der Zeitstempel ist weniger als jetzt minus 24 Stunden
- die Datensätze löschen (Bereinigung) auf Intervall, sagen, eines Tages, cron-Job mit
- 1. PHP - Wie lösche ich Daten aus der Datenbank automatisch nach 24 Stunden Einfügung
- 2. MSMQ Private Warteschlange entfernt ungelesene Nachrichten automatisch nach 24 Stunden
- 3. Systemd: Service automatisch nach 24 Stunden neu starten?
- 4. Daten werden automatisch aus der MySQL Datenbank in alle 24 Stunden gelöscht
- 5. InfluxDB Schreibvorgang stoppt automatisch nach 24 Stunden/einem Tag
- 6. Löschen von Dateien und Ordner mit Dateien automatisch nach 24 Stunden
- 7. MySQL: Datensätze nach Stunden eingefügt, für die letzten 24 Stunden
- 8. CodeIgniter löschen Zeile aus der Datenbank
- 9. Löschen Zeile aus der Datenbank mit Servlet
- 10. FileMover 24 Stunden - Python
- 11. CDN Endpunkt funktioniert nicht nach 24 Stunden
- 12. dateFromString Rückgabe nil nach Änderung 24 Stunden
- 13. Postgres-Trigger nach 24 Stunden nach Datensatzeinfügung ausführen?
- 14. löschen aus der Datenbank Fehler nach Ablauf
- 15. Regex für 24 Stunden
- 16. Wie 24 Stunden
- 17. Löschen der Zeile in der Datenbank
- 18. 12 Stunden Zeichenzeit in 24 Stunden umwandeln
- 19. 24-Stunden-Format im 12-Stunden-Format
- 20. 12 Stunden in 24 Stunden umrechnen
- 21. Wie lösche ich Daten alle 24 Stunden aus Firebase?
- 22. Moment.js 24-Stunden-Zeitformat, mit der 24. Stunde umgehen
- 23. Android - Arbeit mit 24 Stunden Zeitintervallen
- 24. MemberMouse Registrierungsdatum plus 24 Stunden
- 25. SimpleDateFormat.getTimeInstance ignoriert 24-Stunden-Format
- 26. Benutzerkonto automatisch blockieren, wenn der Benutzer seine E-Mail nicht innerhalb von 24 Stunden nach der Registrierung überprüft
- 27. Wie erhalte ich die Datetime im 24-Stunden-Format aus der Oracle-Datenbank?
- 28. System.Timers.Timer auf 24 Stunden Intervall
- 29. iPhone-24-Stunden-Zeiteinstellung erkennen
- 30. NSDateFormatter mit 24 Stunden Zeiten
'aber es kann nicht auf großen apps laufen 'Wirklich, und warum? –
@u_mulder Entschuldigung meine Vagheit.Ich habe es bearbeitet :) – Murad
Jetzt - 'es verlangsamt apps'. Wie? Wer hat dir das gesagt? –