Daniel Thoma: Caching umfangreicher(!) Datenbankabfragen

Beitrag lesen

Hallo Eddie,

Pro Verzeichnis eine Datei. Ist die Frage, ob das dann die von Sven geäußerte Skepsis zum langsamen Dateizugriff entschärft?

Die Skepsis teile ich nur bedingt. Die Ordner enthalten ja in dem Fall nur 27 Einträge und der Baum ist so ca. 5 Ebenen tief. Da sollte man sehr schnell den richtigen Treffer finden. Dein Problem sind ja auch nicht die 6 Mio. Einträge in der Datenbanktabelle, sondern dass Du zudem noch eine kompliziertere Anfrage hast.
Wenn Du ähnlich komplizierte Berechnungen durchführen musst, um die Cachedateien zu finden, bringt der Cache natürlich nichts mehr. Wenn man aber statt dem Ausführen eines komplexen Queries nur einen Dateizugriff in einem flachen Verzeichnisbaum durchführen muss, sollte das schon einiges bringen.
Ich habe mit sowas noch nie experimentiert, aber ich nehme an, dass moderne Dateisysteme auch noch mit ein paar Mio. Dateien performant arbeiten.

Zum löschen seltener Anfragen: Das bringt es nur, wenn Du wirklich einige wenige Anfragen hast, die extrem häufig sind. Aber ist das wirklich der Fall?
Außerdem würde ich davon keinen Performancevorteil erwarten. Im Schnitt wird das sicher sogar langsamer, weil einge Anfragen eben nicht gecacht sind.
Du kannst dadurch höchstens Speicherplatz spaaren. Wenn es aber keinen Zwang gibt, damit zu geizen, würde ich das eher nicht tun.

Grüße

Daniel