| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

14-07-2010, 00:24
|
|
xserio
Registrierter Benutzer
|
|
Registriert seit: Jun 2008
Beiträge: 63
|
|
Datenbank oder Ordner auslesen -> Performance
Moin,
ich arbeite gerade an einem Wordpress/Buddypress Projekt. Meine User haben die Möglichkeit, Bilder hochzuladen, diese werden vom Script (BP Album+) in einer Datenbank gespeichert. Ich habe das Script so angepasst, dass das ganze jetzt in etwa so aufgebaut ist:
User 1 Galerie
--- Kategorie 1
--- Kategorie 2
--- Kategorie 3
User 1 Galerie
--- Kategorie 1
--- Kategorie 2
--- Kategorie 3
etc.
Der User muss also vor dem upload festlegen, in welche Kategorie das Bild kommt und dieses wird im entsprechenden Ordner gespeichert. Es gibt 7 Kategorien, also 7 Ordner pro User.
Ich kann schon relativ genau sagen, dass maximal 100 User, also 700 Ordner mit grob geschätzten 5000 Bildern angepeilt sind. Wobei pro Bild immer 3 Versionen abgespeichert werden (Thumbnail, Original, Webseitenansicht), also sind es eher 15000 Bilder...
Für die Bildausgabe habe ich mir jetzt ein Script geschrieben, welches alle User-Ordner der bestimmten Kategorie ausliest und die Bilder aus selbigen darstellt. Dabei muss auch noch der Dateiname ausgelesen und mit den str-funktionen zerschnibbelt werden um die Bild-ID auszulesen, die im Dateinamen gespeichert ist...
Ich würde gerne wissen, ob es sinnvoller wäre, die Kategorie zusätzlich in der schon vorhandenen Datenbank zu speichern(momentan sind da Bild-Id, Url, etc gespeichert, aber nicht das Bild selbst) und von dort aus die Bilder auszulesen. Ich habe kaum Erfahrung mit Datenbanken, hab also keine Vorstellung davon, was performanter wäre. Wäre nett wenn mich da jemand beraten könnte, bevor ich das ganze Script jetzt auf Datenbank-Abfrage umschreibe. Google hat diesbezüglich nicht viel hergegeben...
Gruss,
Alex
Geändert von xserio (14-07-2010 um 00:40 Uhr)
|

14-07-2010, 00:41
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Hallo,
ich frage mich gerade, wofür du die Bild-ID aus dem Dateinamen extrahieren musst, wenn du es nur anzeigen willst. Oder fragst du anhand dieser dann für jedes Bild die DB ab, um Kommentare, Bewertungen oder ähnliches abzurufen?
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

14-07-2010, 01:02
|
|
xserio
Registrierter Benutzer
|
|
Registriert seit: Jun 2008
Beiträge: 63
|
|
Zitat:
Zitat von AmicaNoctis
Hallo,
ich frage mich gerade, wofür du die Bild-ID aus dem Dateinamen extrahieren musst, wenn du es nur anzeigen willst. Oder fragst du anhand dieser dann für jedes Bild die DB ab, um Kommentare, Bewertungen oder ähnliches abzurufen?
Gruß,
Amica
|
Hi,
ich lese nur die Ordner aus, garnicht die Datenbank. Die ID im Dateinamen lese ich aus, da ich die Bilder anhand dieser von Neu nach Alt sortieren kann...Die ID ist 100% einzigartig, da diese wiederrum aus der ID der Datenbank beim bild-upload in den Dateinamen geschrieben wird (in der DB per auto-increment aufgefüllt)
Gruss,
Alex
|

14-07-2010, 01:29
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
In diesem Falle denke ich, dass dir da die Datenbank beim reinen Anzeigen der Bilder keinen Performance-Vorteil bieten könnte und der Zugriff auf das Dateisystem mit dieser Struktur schon der sinnvollste Weg ist. Die paar Stringoperationen tun nicht weiter weh – wenn du dabei auch auf Regex verzichten kannst, erst recht nicht.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

14-07-2010, 01:58
|
|
xserio
Registrierter Benutzer
|
|
Registriert seit: Jun 2008
Beiträge: 63
|
|
ah super, das freut mich!
Wenn so ein Projekt viel umfangreicher wird greift man auf Datenbaken zurück? Gibt es da irgendwelche Richtlinien, ab welcher Datenmenge, oder kommt das immer ganz auf individuelle Einstellungen an?
gruss&danke,
alex
|

14-07-2010, 02:15
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Konkrete Richtlinien sind mir da nicht bekannt, aber in deinem Falle geht es um hierarchisch geordnete (User, Kategorie, …) Binärdaten (Bilder), die untereinander nicht verknüpft sind. Da drängt sich das Dateisystem praktisch auf. Sobald du aber deine User die Bilder von anderen kommentieren, bewerten oder sonstiges machen lässt, hast du Verknüpfungen, die sich im Dateisystem nur schlecht verwalten lassen und da hat dann eine Datenbank wieder die Nase vorn.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|