upload-Verzeichnis bei zu viel Dateien deutlich langsamer?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • upload-Verzeichnis bei zu viel Dateien deutlich langsamer?

    Hi,

    ich hab ein Verzeichniss in dem per upload Bilder gespeichert werden. Da dieses Verzeichnis sehr gross werden wird (ich schätze mal so 40.000 Dateien ) befürchte ich das beim späteren Anzeigen der der Bilder es zu lange dauern wird bis das entsprechende Bild rausgesucht ist.

    Drum überlege ich ob ich alle 1000 Bilder ein neues Verzeichnis anlegen soll

    Oder ist die Sorge unbegründet?? Hat einer von Euch vielleicht ein paar Erfahrungswerte??

    Gruss und Danke


    Thommy
    www.unister.de

    what students want!

  • #2
    Wenn Du über Filesystemfunktionen deine Applikation aufbaust wirst Du sehr rasch an Performancegrenzen stoßen.
    Mir ist es so ergangen. Ich hatte pics in einem Verrzeichnis abgelegt. Die Pics konnten über die Filenamen identifiziert werden. Filename bestand im Wesentlichen aus Datum und einer Kennung: event1_20020202.jpg
    Beim Entwickeln hat alles wuderbar funktioniert, aber als sich tausende Bilder ansammelten wars aus mit Lustig. Hab dann alles auf MySQL umgebaut, in einer Tabelle nur den Pfad zum Bild gespeichert. Von Timeouts, Antwortzeiten im Minutenbereich konnte das ganze auf eine Sekunde getuned werden.Ob jetzt 1.ooo oder 1o.ooo Bilder im Dateisystem bagelegt sind ist jetzt egal. Ich Zeige maximal 40 Thumbs auf einer Seite an.

    Kommentar


    • #3
      Hi Hand

      mmh,

      ich glaub ich hab da irgendwas nicht richtig verstanden und auch vorhin was vergessen. Also ich speichere die Pfade zu den Bildern auch in ner mysql - DB. Aber die Bilder sind halt in einem Verzeichnis, welches sehr gross werden wird. Meine Angst war das dann beim suchen des jeweiligen Bildes in dem Verzeichnis (den Pfad hat er aus der DB) zu lange braucht.

      Was denkste??
      www.unister.de

      what students want!

      Kommentar


      • #4
        Das ist die einzige Möglichkeit. Dadurch daß Du die Bilder im Filesystem anstatt in einen BLOB in der Datenbank gespeichert hast entlastest Du die Datenbank. Der einzige Nachteil ist es, das Filesystem mit den Eintragungen der Datenbank synchron zu halten, d.h. wenn jemand ein Bild aus dem Filesystem löscht, muß natürlich auch der Record in der DB gelöscht werden, damit kein broken Link zu einem Bild passiert. Acht geben muß man auch beim Sichern der Daten, daß zur Datenbank die entsprechenden Bilder mitgesichert werden um im Falle eines Falles die Daten restoren zu können.

        Ich weiß nicht welche Anwendung Du in dieser Art betreibst. Suchbegriffe, Schlagworte, Daten zum Bild wie Datum und Uhrzeit, Zugriffsrestriktionen auf die einzelnen Bilder, Zuweisungen zu Kategorien hast Du alle in der Datenbank. Suchmechanismen handelst Du zur Gänze über die Datenbank ab und Du zeigst sicher nicht alle Treffer auf einmal an, sondern seitenweise oder? Da brauchst Du keine Bedenken haben. Wenn Du die aus den Originalbildern beim Upload noch verkleinerten, nicht speicherintensiven Thumbs erzeugst und in einer Trefferanzeige zunächst nur die Thumbs, die einen Link zum Original aufweisen anzeigst, hast Du sicher eine für solche Applikationen optimale Vorgehensweise gewählt.

        Über height und width kleingezoomte Original-Bilder sind keine Thumbs, denn das gesamte File muß über die Leitung zum Browser übertragen werden, was Modem-User, oder User die mit geringer Bandbreite im Internet hängen verständlicherweise nervt.

        Ich lege die Thumbs und Originalbilder in getrennten Directories mit gleichem Namen ab (/orig, /thumb).

        Du suchst ja nicht im Filesystem nach den Bildern. Du suchst sie ja nach den Datenbankinhalten und das geschieht unabhängig von den Files die Du im Filesystem abgelegt hast. Letztendlich referenzierst Du lediglich über den <img>-Tag über "src=".

        In meiner Applikation kann man mit vorwärts und rückwärtsblättern einzeln von Original zu Original wechseln (vor zurück). Dabei wende ich einen Trick an, damit das schneller geht.

        In der Mitte zeige ich das Original rechts davon das nächste Bild als Thumb, links davon das vorherige ebenso als Thumb. Während der Besucher das Original betrachtet, lade ich am Ende des Seitenaufbaus bereits im Hintergrund das nächste Original vor, damit die Folgeseite rascher aufgebaut werden kann. Das wirkt sich halt so aus, daß die Seite sichtbar bereits vollständig für den Betrachter aufgebaut ist, sich aber noch immer die Weltkugel im IExplorer dreht, weil vorgeladen und das Folgebild in den Browsercache gelegt wird. Das funktioniert aber nur dann, wenn der Besucher sich etwas länger auf der jeweiligen Seite aufhält, wenn er ohne zu warten gleich weiterklickt, hat er eben nichts vom Tuning, da das Bild nicht vorgeladen werden konnte.

        Kommentar


        • #5
          Hey Danke !!
          www.unister.de

          what students want!

          Kommentar

          Lädt...
          X