Befehl automatisch ausführen

DerEisige

Erfahrenes Mitglied
Hallo,

ich möchte automatisch alle Daten die älter als einen tag sind, aus eine Tabelle im meiner MySQL Datenbank gelöscht werden.
Den befehl habe ich auch schon
Code:
DELETE FROM table WHERE (TO_DAYS(now()) - TO_DAYS(date)) > 1
Nun ist die frage wie ich dissen automatisch ausführen kann.

mfg. derEisige
 
Hi,

ich würde hier einen Cronjob einrichten, der die entsprechende Query absetzt. Auf welchem System läuft der Datanbank- und/oder Webserver?

Grüße,
BK
 
Moin DerEisige,

a) alle Daten, die nicht von heute sind, immer physikalisch zu löschen und das jeden Tag... das brauchst du bei einer Datenbank nicht wirklich. Wenn deine Such-Abfragen über einen Index gehen, der das Feld "Datumsfeld" enthält, dann bist du nicht messbar langsamer, wenn du die Daten von "heute" abfragst, egal
- ob in der Tabelle dann 1000 "heutige" Datensätze und 3 Millionen "nicht heutige" oder
- ob die Tabelle 1000 "heutige" und keine "nicht heutige" enthält.

b) wenn du das glaubst und demzufolge nur 1x im Monat, 1x im Quartal o.ä, den veralteten Datenmüll löschen willst, dann brauchst du eher keinen Automatismus.

c) wenn es dir trotzdem sinnvoll erscheint, möglichst täglich alles von gestern and beyond wegzuschrubbeln
-> dann mach diesen Delete-Befehl in deinem Anmeldescript. Dann wird das Löschen jedesmal versucht, wenn du dich anmeldest.
Wenn du dich 1x am Tag anmeldest, dann halt 1x.
Wenn du dich 3x am Tag anmeldest, dann halt 3x versucht, aber nur einmal werden Sätze gefunden+gelöscht.
Wenn du dich 0x am Tag anmeldest, dann halt gar nich - you are welcome tomorrow.


Grüße
Biber
 
also gibt es nicht die möglichkeit das ditekt im MySQL automatisch aus führen zu lassen, dann werde ich es nun über den login machen.

Danke euch
 
Zurück