Partiellen Index anlegen mit Zeitüberprüfung

Hallo zusammen,

ich bin ein Neuling im Thema Datenbanken und mache gerade meine ersten Versuche, eine komplette Datenbank aufzubauen. Jetzt habe ich gelesen, dass es möglich ist, partielle Indexe auf eine Spalte zu legen, die nur einen Teil der Tabelle indizieren.

Beispiel: CREATE INDEX bestellungen_unbezahlt ON bestellungen (bestellnr) WHERE NOT bezahlt;

‘bezahlt’ ist eine boolsche Spalte.

Nun meine Frage: Ich schreibe Logdateien in meine Datenbank, aber möchte nur einen partiellen Index über alle Logeinträge haben, die jünger als 6 Monate sind. Kann man das mit einem partiellen Index irgendwie verknüpfen, oder muss das eine statische Bedingung sein?

Das wird so nicht funktionieren. Der Index ändert sich ja nicht nachträglich, nur weil die Zeit voranschreitet.

Für dein Problem gibt es eine andere Lösung, nennt sich “Partitionierung”. Das hat dann außerdem noch den Charme, dass du alte Logdaten einfach durch ein “DROP TABLE” wegwerfen kannst.

hallo ads,

danke für deine antwort. dann werde ich mich mal über das thema partitionierung schlau machen :slight_smile:

lg und schöne woche