Caching - Dateien pro Verzeichnis

King-S

Registered User
Hallo,

ich habe eine Frage, die auf einem Template-System (PHP: Smarty) basiert, aber letztenendes das Dateisystem tangiert. Deswegen schreibe ich auch in diesem Forum und nicht im Smarty-Forum.

Mit Smarty kann man Seiten cachen oder pro Seite mehrere Caches verwenden. So kann zB für jeden User die Datei "profil.php" gecached werden. Dabei wird nur die User-ID übergeben.

Nun Frage ich mich folgendes: Angenommen, ich habe 10000 User, also 10000 Profile. Bei eingeschaltetem Cache hätte ich dann auch 10000 Dateien in dem Cache-Ordner.

Gut, die Datenbank muss also nicht mehr suchen und keine Werte mehr zurückgeben, allerdings muss die Festplatte die richtige Datei in den 10000 suchen. Und was ist, wenn ich mehrere solche Seiten hätte? Dann müsste die Platte schon in 20000 Dateien (bzw. 10000*x-User - Dateien) suchen.

Wäre damit nicht der Vorteil des Cachings schon wieder dadurch abgelöst, dass jetzt die HDD die Arbeit hat und nicht mehr die DB?

Ich hoffe, ihr habt verstanden, was ist meine ;)

Vielen Dank im Voraus
 
Ich nehme mal schwer an, dass nicht IN der Datei gesucht wird, sondern die Datei bspw. als Hashwert aus Dateiname und Benutzername bspw. gesichert wird. So wird dann auch wieder darauf zugegriffen.

Mach dir also keine Sorgen, der Cache wird schneller sein als eine Datenbankabfrage. Denn letztlich ist es nicht nur die Abfrage die gecached wird, sondern auch der kompilierte PHP-Code. Da ist das gezielte Lesen der Seite von der Festplatte erheblich schneller.

Keine Sorge also :)
 
Wow, diese Antwort freut mich grade ;)

Trifft das auch noch zu, wenn in dem Ordner - sagen wir mal 200.000 Dateien liegen?

Wie viele Dateien dürfen denn überhaupt in einem Ordner liegen? Dateisystem ist ext3 (soweit ich weis)

Vielen Dank!
 
Ich kann dir nicht sagen wie viele Dateien in einem Verzeichnis existieren dürfen, da ich niemals von einer Obergrenze gehört habe.

Allerdings würde ich stark vermuten, dass deine Festplatte nicht gross genug ist um an eine möglicherweise existierende Obergrenze zu stossen :)

Also no panic. Zumal kannst du davon ausgehen, dass der Cache auch wieder geleert wird. Ein Benutzer überschreibt immer die gleiche Datei. Wenn es Obergrenzen gäbe würde man dich darauf hinweisen.
 
Back
Top