Ankündigung

Einklappen
Keine Ankündigung bisher.

Wie Grafik aus GDLib Persistieren ¿

Einklappen

Neue Werbung 2019

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

  • #16
    Weitere Punkte die gegen ein Speichern in der Datenbank sprechen: (nicht alles auf Bilder bezogen sondern zum Teil allgemein auf binäre Daten)

    1) Datensicherung und wiederherstellung führt oftmals zu problemen, weil die Dumps extrem groß werden
    2) Starke Limitierung der Dateigröße da bei den meisten hostern ein query maximal zwischen 512 kb und 2 MB haben darf
    3) will ich informationen wie typ, größe (auflösung) etc, muss ich erst die komplette Daten aus der DB holen -> viel unnötiger overhead stichwort www.php.net/getimagesize und exif-informationen etc ..
    4) Viele Programme kommen nicht mit Datenbankdumps klar die binäre Daten enthalten, können sie nicht richtig speichern etc
    5) Querys in der Größe die dafür nötig sind, gehen auch gut zu lasten des mysql-servers, und auch hier kommt der speed wieder ins spiel, weil unter umständen der mysql-server eben nicht lokal auf dem webserver läuft, sondern der ganze anfragenkram auch noch übers netzwerk muss und somit doppelter traffik entsteht
    -> vom mysql-server zum webserver, und bei Ausgabe etc dann vom webserver zum User/Browser


    Was mich mal interessieren würde, was du hier mit Inkonsitenz und höherer Komplexität meinst.
    Die Chance dass bei nem query hin und her irgendwo mal ein fehler auftritt halte ich für höher wie wenn die Datei nur aus dem Dateisystem kommt

    Komplexität ?


    - Als erstes braucht man sowiso nen Dateisystem
    - Berechtigungen auf Verzeichnis müssen gesetzt werden
    - Wenn das Dateisystem mal den Zugriff verweigert weil nen anderes Programm die Datei exklusiv geöffnet hat geht sowiso nix mehr
    - Öhm blub ? Dateisystem ? ich speiche die Dateien einfach alle mit der ID die sie haben sollten in nem Ordner, ohne Endung oder was und leg ne .htaccess mit "DENY FROM ALL" rein, damit von aussen so keiner rankommt.
    - Also Zugriffsrechte für nen Ordner ausreichend zu setzen, dass ein Script drauf zugreifen kann, sollte jeder programmierer beherschen ... Imho erledigt sowas im Normalfall (Überprüfung und setzen) die Installationsroutine.
    - Stellt sich doch die Frage, was DU auf deinem Webspace/Server laufen lässt, was das bewerkstelligt, ich mein natürlich könnte auch irgendein Script den zugriff auf die Dateien die deine Tabelle in der MYSQL-Datenbank darstellen unterbinden, kommt sich hier gleich.

    Ich hab 1 Jahr an einem CMS weitergearbeitet, dass von den Programmierern so gebaut worden war, dass SÄMTLICHE binärDaten in der DB standen, das hat von vorne bis hinten Probleme gemacht, seien es die Backups, Umzüge zu anderen Providern, die maximale Dateigrößen, besonders wenn mehrere Bilder auf einer Seite waren und ne Seite wirklich mal zugriffe hatte, ging die Auslastung der Mysql-Datenbank sehr schnell, sehr hoch.
    Und grade dann war Performance nicht mehr da. Und jenachdem für was das Script gedacht ist und was im Endeffekt das produktive Umfeld ist kann es oftmals ein Problem werden.
    Während es deinem Hoster schön egal ist, wenn du deinen Eigenen Server hast, störst du mit solcher unnötiger Auslastung bei nem Shared-Host anbieter unter umständen das komplette Gleichgewicht, bringst den Mysql-Server an seine Grenzen und dann sagt dir dein Hoster, Ne du, is ned, deine Applikation ist zu hungrig, mach was oder such dir nen anderen hoster. (In eigentlich fast jeder AGB von Providern gibts Klauseln um User die Scripte laufen lassen die zu viel Performance fressen los zu werden).

    mfg
    robo47
    [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
    | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

    Kommentar


    • #17
      Zitat von robo47
      1) Datensicherung und wiederherstellung führt oftmals zu problemen, weil die Dumps extrem groß werden
      Ich habe kein Problem mit großen Dumps.

      Zitat von robo47
      2) Starke Limitierung der Dateigröße da bei den meisten hostern ein query maximal zwischen 512 kb und 2 MB haben darf
      Also mein Hoster bietet MySQL an und da sind die Anfragen nicht auf 2 MB beschränkt.

      Zitat von robo47
      3) will ich informationen wie typ, größe (auflösung) etc, muss ich erst die komplette Daten aus der DB holen -> viel unnötiger overhead stichwort www.php.net/getimagesize und exif-informationen etc ..
      Yo, sollte ich das wirklich brauchen dann kommt das als Spalte in die Tabelle.

      Zitat von robo47
      4) Viele Programme kommen nicht mit Datenbankdumps klar die binäre Daten enthalten, können sie nicht richtig speichern etc

      Man kann auch einfach Programme verwenden die Funktionieren.

      Zitat von robo47
      5) Querys in der Größe die dafür nötig sind, gehen auch gut zu lasten des mysql-servers, und auch hier kommt der speed wieder ins spiel, weil unter umständen der mysql-server eben nicht lokal auf dem webserver läuft, sondern der ganze anfragenkram auch noch übers netzwerk muss und somit doppelter traffik entsteht
      -> vom mysql-server zum webserver, und bei Ausgabe etc dann vom webserver zum User/Browser
      Ja genau, hier kommt wieder die Performanz ins Spiel.
      Wie gesagt die ist nachrangig.

      Zitat von robo47
      Was mich mal interessieren würde, was du hier mit Inkonsitenz und höherer Komplexität meinst.
      Die Chance dass bei nem query hin und her irgendwo mal ein fehler auftritt halte ich für höher wie wenn die Datei nur aus dem Dateisystem kommt

      Komplexität ?
      Steht auch im Artikel auf den Bruchpilot verwiesen hat :
      Die Datei wird im Dateisystem umbenannt, daraufhin sind die Daten inkonsistent. Das kann man dann zwar durch das prüfen aller Verweise (ins Dateisystem) feststellen, aber nicht mehr in einen konsistenten Zustand überführen ohne die Grafik neu einzulesen/zu erstellen.

      Komplexität : Dadurch das man sich noch mit Dateien beschäftigen muss wird dass Programm komplexer.

      Wieso sollte bei "nem query hin und her irgendwo mal ein Fehler" auftreten ¿
      Meinst du durch einen Fehler im Programm, im WWW Server, im DB Server oder warum ¿

      Zitat von robo47
      - Als erstes braucht man sowiso nen Dateisystem
      - Berechtigungen auf Verzeichnis müssen gesetzt werden
      - Wenn das Dateisystem mal den Zugriff verweigert weil nen anderes Programm die Datei exklusiv geöffnet hat geht sowiso nix mehr
      - Öhm blub ? Dateisystem ? ich speiche die Dateien einfach alle mit der ID die sie haben sollten in nem Ordner, ohne Endung oder was und leg ne .htaccess mit "DENY FROM ALL" rein, damit von aussen so keiner rankommt.
      - Also Zugriffsrechte für nen Ordner ausreichend zu setzen, dass ein Script drauf zugreifen kann, sollte jeder programmierer beherschen ... Imho erledigt sowas im Normalfall (Überprüfung und setzen) die Installationsroutine.
      - Stellt sich doch die Frage, was DU auf deinem Webspace/Server laufen lässt, was das bewerkstelligt, ich mein natürlich könnte auch irgendein Script den zugriff auf die Dateien die deine Tabelle in der MYSQL-Datenbank darstellen unterbinden, kommt sich hier gleich.
      Für den konkurierenden Zugriff bei Dateien brauchts nicht immer nen anderes Programm, da reicht schon eine andere Instanz des selben Skripts/Programms.
      Und ich selber brauche keine Datensätze zu sperren.
      Wenn ich zum Beispiel auf meinem Server ein paar Dateien durchsuchen lassen will kann mir das mit der von dir empfolenen Lösung zum Verhängnis werden. Wenn ich gleiches mit einer Datenbank mache muss ich dagegen die Datensätze nicht dafür sperren.

      Zitat von robo47
      Ich hab 1 Jahr an einem CMS weitergearbeitet, dass von den Programmierern so gebaut worden war, dass SÄMTLICHE binärDaten in der DB standen, das hat von vorne bis hinten Probleme gemacht, seien es die Backups, Umzüge zu anderen Providern, die maximale Dateigrößen, besonders wenn mehrere Bilder auf einer Seite waren und ne Seite wirklich mal zugriffe hatte, ging die Auslastung der Mysql-Datenbank sehr schnell, sehr hoch.
      Und grade dann war Performance nicht mehr da. Und jenachdem für was das Script gedacht ist und was im Endeffekt das produktive Umfeld ist kann es oftmals ein Problem werden.
      Während es deinem Hoster schön egal ist, wenn du deinen Eigenen Server hast, störst du mit solcher unnötiger Auslastung bei nem Shared-Host anbieter unter umständen das komplette Gleichgewicht, bringst den Mysql-Server an seine Grenzen und dann sagt dir dein Hoster, Ne du, is ned, deine Applikation ist zu hungrig, mach was oder such dir nen anderen hoster. (In eigentlich fast jeder AGB von Providern gibts Klauseln um User die Scripte laufen lassen die zu viel Performance fressen los zu werden).

      mfg
      robo47
      Hier gehts ja wieder um Performanz und anscheinend auch ein paar spezifische Probleme die du mit einer bestimmten Anwendung hattest. Da kann ich dir natürlich nix dazu sagen weil diese Probleme (vieleicht noch ) nicht hab.

      Aber ich schätze dein Bemühen mich zu warnen.

      Kommentar


      • #18
        ^^^ man kann sicher aus einer Mücke einen Elefanten machen ...

        - Als erstes braucht man sowiso nen Dateisystem
        Wo legst du denn deine PHP-Scripte ab ?
        Und wo ist dort das Problem ein bildchen abzulegen, und bei bedarf zu laden ?

        - Berechtigungen auf Verzeichnis müssen gesetzt werden
        Keine Ahnung was du veranstalten willst.

        Kommentar

        Lädt...
        X