Achim: MySQL: Letze 10 Einträge - First in first out

Hi !

Ich hätte mal ne konzeptionelle Frage zu MySQL. Angenommen man hat ein Portal mit mehreren Tausend Usern das sehr frequent genutzt wird (also im Sinne von hohem Traffic und hoher DB-Belastung).

Nehmen wir als Beispiel die letzten 10 Besucher eines Benutzerprofils. Kann ich es mit den Datenstrukturen und -Möglichkeiten von MySQL irgendwie realisieren dass pro User nur die letzten 10 Einträge gespeichert werden ?

Also so ... dass sich die Applikation nicht um die Verwaltung (das Löschen älterer Einträge) kümmern muss.

Beispiel einer Tabelle:

  
user_id INT(11)  
besucher_id INT(11)  
date DATETIME  

Hat jemand einen Tipp ?

  1. Hi,

    Nehmen wir als Beispiel die letzten 10 Besucher eines Benutzerprofils. Kann ich es mit den Datenstrukturen und -Möglichkeiten von MySQL irgendwie realisieren dass pro User nur die letzten 10 Einträge gespeichert werden ?

    Nicht, dass ich wüsste.

    Also so ... dass sich die Applikation nicht um die Verwaltung (das Löschen älterer Einträge) kümmern muss.

    Du könntest regelmässig ein DELETE-Statement mit entsprechender LIMIT-Klausel feuern.

    Das kannst du auch in eine Procedure o.ä. packen, so dass es jedes mal mit ausgeführt wird, sobald ein neuer Eintrag gemacht wird.

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
  2. Hallo,

    Nehmen wir als Beispiel die letzten 10 Besucher eines Benutzerprofils. Kann ich es mit den Datenstrukturen und -Möglichkeiten von MySQL irgendwie realisieren dass pro User nur die letzten 10 Einträge gespeichert werden ?

    mit einem Trigger sollte dies möglich sein - aber: sowas ist natürlich zusätzlicher Aufwand für den DB-Server.

    Freundliche Grüße

    Vinzenz