php.de

Zurück   php.de > Webentwicklung > Server, Hosting und Workstations

Server, Hosting und Workstations Server-Konfigurationsdateien (.htaccess/httpd.conf) und Arbeiten auf Serverebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.12.2009, 13:36  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard Ordnerstruktur bei vielen Bildern

Hi,
ich würde gerne mal eure Meinung hören wie man am besten größere Mengen an Bildern abspeichert.

Folgende Situation:
Ich habe etwa 2 Millionen Bilder, diese gehören jeweils zu einem Event. Jedes Event hat im Schnitt 100-300 Bilder. Es gibt ungefähr 13 000 Events. Bis jetzt werden die Bilder so abgespeichert das es einen Ordner gibt der für jedes Event einen Unterordner hat (id des Events ist der Name des Ordners).

Pro Bild gibt es 4 Versionen. Kleines Thumb, großes Thumb, eine 640px Auflösung und eine große Version (zum Fotodruck). Die Ordnerstruktur sieht also so aus:

Code:
/bilder
  /<event_id>
    /thumb_small
    /thumb_big
    /slide
    /big
Es gibt also 13 000 Unterordner von "bilder".

Da die ganze Webseite umgeschrieben wird möchte ich gern diese Bilderverwaltung ändern. Ich glaube dass so viele Unterordner nicht grad die beste Performance bietet (allein der FTP Zugriff ). Ich denke da an eine etwas tiefere Hierarchie als die jetzige.

Meine Idee war also den Bildnamen zu hashen und dann die Ordnerstruktur anhand des Hashes zu generieren.

Code:
/bilder
  /<erstes Zeichen des Hashes>
    /<zweites Zeichen des Hashes>
      /<usw>
        /<event_id>
          /thumb_small etc.
Diese Struktur vielleicht auf 4 Ebenen zu machen und dann wieder die Event ID und die 4 Unterordner für die 4 Versionen.

Die Frage ist jetzt macht das Sinn? An der Uni hab ich gelernt das bei vielen Dateien in einem Ordner diese alle an einem Inode hängen und dort eine lineare Suche durchgeführt wird um die Datei zu finden. Daher wäre es wohl besser Ordner mit wenig Inhalt zu haben und dafür etwas mehr Ebenen.

Gruß Flo

(hatten wir nicht hier mal nen BBCode Tutorial bei dem man mit Callback Methoden weitere Codes einfügen kann? Ich find es grad nimmer. Wo sind überhaupt alle Tutorials hin?)

Geändert von Flor1an (14.12.2009 um 13:42 Uhr).
Flor1an ist gerade online   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 14.12.2009, 14:12  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.991
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Tutorials - php.de

Wozu die Hashes? Die sind doch ziemlich unpraktisch. Geht da nicht genauso:

Code:
/bilder
  /<erstes Zeichen der EventNummer>
    /<zweites Zeichen der EventNummer>
      /<usw>
        /thumb_small etc.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online   Mit Zitat antworten
Alt 14.12.2009, 14:12  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

In der Größenordnung würde ich sagen, das ganze hängt doch schon stark vom verwendeten system dahinter ab, Betriebsystem und vor allem dateisystem. Die Anzahl der unterstützen Dateien in einem Ordner ist nämlich abhängig vom Dateisystem und die Geschwindigkeit mit der es dann noch arbeitet auch.
Abhängig davon ob das System 32 oder 64bit ist haben auch gänige linux-befehle ab einer gewissen anzahl dateien in einem ordner probleme, da kommt bei einem ls dann nur noch "too many arguments" und wenn der ftp ls nutzt für sein dateilisting, kannst du dann via ftp schon nicht mehr darauf zugreifen, während es in der console dann workarounds mit xargs und so gibt.


Im zuge weiterer skalierung kannst du dir vielleicht auch überlegen inwieweit es Sinn macht Bilder einer Gallerie auf mehrere ordner zu verteilen und subdomains für diese ordner aufzusetzen um damit die anzahl der möglichen gleichzeitigen requests zu erhöhen.

Normalerweise sind Browser ja so eingestelt dass die zwischen 2 und 4 Dateien gleichzeitig von einer domain ziehen, wenn du das ganze jetzt verteilst und auf einer seite 30 bilder anzeigst die auf 3 verschiedenen domains liegen, können anstatt 2 bzw. 4 Bildern jetzt gleichzeitig 6 - 12 requested werden, was besonders bei kleinen dateien wie thumbnails und previews oftmals viel performanter ist als alle über eine domain zu verteilen.
Es würde dir auch erlauben irgendwann wenn das ganze für eine kiste zu viel wird, die bilder auf reine dateienserver zu verteilen und einfach die subdomain auf die kiste umzuleiten, kombiniert mit einem einfachen webserver wie lighttpd, ngnix oder ähnlichem kann man da auch nochmal performance sparen.
Was man auch nicht vergessen sollte sind Cookies in dem Fall. Cookies werden bei JEDEM request an die domain mitgeschickt, sprich bei JEDEM request für ein Bild werden auch die gesetzten cookies mitgesendet. Sind die bilder jetzt auf einer anderen domain (oder subdomain wenn man seine cookies ordentlich nur für die hauptdomain setzt), spart man den kompletten overhead bei jedem request auch noch die für die bilder total unrelevanten cookies mitzusenden. solange das nur ne sessionid ist, ist das zwar nicht viel aber wenn größerer gebrauch von cookies gemacht wird sei es von einer statistik-software oder sonstwas, wird das bemerkbar.
robo47 ist offline   Mit Zitat antworten
Alt 14.12.2009, 14:49  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Hach ich hab letztens erst eingestellt das er mir im Forum nur die Threads der letzten x Tage anzeigen soll. Deswegen war das Tutorial Forum so leer :P

Das mit den Subdomains hab ich schon. Zum einen eben um die Anzahl der Requests zu erhöhen und zum anderen mit dem Ziel dass es mal einfach möglich sein soll einen weiteren Fileserver hinzuzufügen.

Mit der Eventnummer ist so ne Sache. Ich denke mal es wäre am besten wenn die Events in etwa gleichmäßig verteilt sind. Wenn ich die ersten Zahlen verwende wäre das wohl doch sehr einseitig und die Hierarchie wäre entartet. Zum anderen ändert sich ja die Anzahl der Stellen und dann würd das Chaos geben .

Aber man könnte die Eventnummern rückwärts nehmen. Also erst die 1er, dann die 10er etc. Wäre dann sogar besser um per FTP auf die Daten zuzugreifen. Auf der anderen Seite hab ich dann maximal 10 Subordner. Ich denke dann nehm ich immer 3 Zeichen dann hab ich bis zu 1000 Unterordner pro Ordner, ganz vernünftig denk ich
Flor1an ist gerade online   Mit Zitat antworten
Alt 14.12.2009, 18:50  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Mh ich glaub ich hab eine geeignete Lösung. Da ich ja immer ein Datum des Events habe, werde ich die Ordnerstruktur so machen:

Code:
/images
  /<year>
    /<month>
      /<day>
        /<event_id>
          /thumbs
          /slides
Denke so kommen nicht zu viele Unterordner pro Ordner zustande und das ganze sind keine sinnlosen Zahlen.
Flor1an ist gerade online   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
ZIP entpacken und Ordnerstruktur übernehmen webproger PHP Tipps 2009 4 26.07.2009 15:46
Mehrere Auflösungen von hochgeladenen Bildern, Ansatz christophM PHP Tipps 2009 1 26.05.2009 15:13
Verlinkungen auf Bildern Horvi PHP Tipps 2008 5 23.05.2008 13:55
bilderausgabe nach x bildern in einer reihe unterbrechen Nick01 Datenbanken 6 25.11.2007 00:31
CakePHP Ordnerstruktur Luka PHP Tipps 2008 1 23.11.2007 18:06
Ordnerstruktur alphabetisch sortiert als XML ausgeben lindner PHP Tipps 2008 7 15.10.2007 18:50
Ordnerstruktur aus mySQL lesen GSJLink PHP Tipps 2006 13 04.11.2006 01:23
CSS Hover bei Bildern im IE juhuwoorps HTML, Usability und Barrierefreiheit 12 01.03.2006 20:28
ordnerstruktur auf webseite anzeigen PHP Tipps 2006 8 29.01.2006 17:39
Nur bestimmte Anzahl von Bildern darstellen??!! Peoples PHP Tipps 2005-2 4 31.12.2005 01:37
Problem mit der Ausrichtung von Bildern HTML, Usability und Barrierefreiheit 8 26.08.2005 19:16
Speichern von Text und Bildern verhindern PHP Tipps 2005-2 6 26.08.2005 19:13
daten von bildern auf einem anderen server abfragen netti PHP Tipps 2005-2 3 05.08.2005 14:27
Ordnerstruktur -> mehrdim. Array (rekursives Durchsuchen) PHP-Fortgeschrittene 4 26.03.2005 11:43
rgb-wert von bildern auslesen PHP-Fortgeschrittene 1 20.07.2004 11:41

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
ordnerstruktur bilder, ordnerstruktur fotos, bilder ordnerstruktur, fotos ordnerstruktur, ordnerstruktur für fotos, ordnerstruktur für bilder, dateien strukturieren, foto ordner struktur, http://www.php.de/server-hosting-und-workstations/62268-ordnerstruktur-bei-vielen-bildern.html, ordnerstruktur server, bilder ordner struktur, bilder ordner performance, website ordnerstruktur cookie overhead, ordnerstrukturen für bilder für krankheiten, server strukturieren ordner, verzeichnisstruktur für grafiken, bilder beispiel ordnerstruktur, ordnerstrukturen fotos, server ordnerstruktur tips, server ordnerstruktur bilder

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:54 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum