Newsgroup: it.comp.www.php
Titolo: blob e gallerie

Per gestire le gallerie di foto di un sito ho sempre usato le funzioni file
system, ultimamente perň ho scoperto che la cosa poteva essere fatta anche
utilizzando  i campi blob di un db e che questa soluzione č anche piů
performante. Ma č realmente cosě? I vantaggi che scaturiscono sono molti (e
anche importanti), ma quali sono gli svantaggi che si possono incontrare?
Vale la pena usare i campi blob per la gestione di  piccole gallerie di
foto?
Grazie a tutti
Ciao!
Fabrizio

 di foto?
Vai su FS che e' meglio.
Saluti.
-- 
I'am what I'am, I do what I can

 Vai su FS che e' meglio.
Dipende dall'applicazione.

 Saluti.
ciao
Alesi_27

 questione
http://punkarruso.altervista.org/
 sito momentaneamente offline.


 
se vai direttamente sul link al pdf in questo preciso momento funziona
ciao
Alesi_27

 se vai direttamente sul link al pdf in questo preciso momento funziona
Grazie, mi dava problemi di autorizzazione.


anche importanti), ma quali sono gli svantaggi che si possono incontrare?
Non troppi; principalmente di spazio e manipolabilita' delle immagini. E
una leggera complicazione per quanto riguarda la lettura delle immagini,
visto che le devi prendere da database usando un secondo script.
Quanto alle performance, ho visto vari benchmark, e vantaggi sostanziali
li ho avuti solo con immagini piccole - penso perche' il database faceva
una cache a pagine e magari, leggendo l'immagine 1, venivano caricate in
RAM anche le immagini 2 e 3, usate di li' a poco.
Principalmente e IMHO, non mi torna, dal punto di vista logico, che fare
un accesso al file system (quando si chiede "image.php"), seguito da una
ricerca del blob, la lettura di NNN bytes, ed un output, possa essere un
gran che piu' performante di un accesso al file system (quando si chiede
"image.gif"), seguito da una ricerca tra le directory, la lettura di NNN
bytes, ed un output.
Sicche' sospetto che il "fattore critico" sia dato dalla strategia usata
dal database server per mantenere le immagini in memoria (cache, LRU, et
cetera), unito all'efficienza del file system.
Ora, e' vero che le prove che ho fatto danno ragione a me; pero', questo
significa poco: perche' puo' darsi benissimo che volendo (e nemmen tanto
inconsciamente) aver ragione, io non abbia ottimizzato il test per l'SQL
altrettanto bene di come ho ottimizzato il test per i file GIF. Sicche',
potrei aver confrontato una gestione file system "turbo" con la gestione
SQL "regolare"; nulla di strano che la prima funzioni meglio :-)
Per esempio, come nomi di file ho usato gli OID di PostgreSQL. Questo in
alcune situazioni non e' fattibile. Se usi un campo varchar, per tenerci
il path dell'immagine, quello ti rallenta (i campi BLOB sono organizzati
invece in base all'OID).
Poi, con "image.php" si possono fare trucchi migliori; per esempio, puoi
passare allo script il timestamp dell'immagine. Questo puo' usarlo entro
uno schema If-Modified-Since/Last-Modification-Date, e il controllo puo'
essere fatto PRIMA di connettersi al DB (il dato e' fornito da URL!), in
modo da ottenere un caching molto aggressivo (e questo e' un test che io
non ho fatto... :-) ), senza ulteriori accessi neaanche al FS.
Il mio suggerimento e' di provare e vedere come ti trovi. Io, nonostante
sia un fedayn del file system, ho provato i BLOB e (in certi casi) mi ci
sono trovato veramente benino :-)
Leonardo cerchiobottista
-- 
Time's angles, mages tell, conceal a place
incredible, beyond the mundane mind;
night-shrouded and between the seas of space
dread creatures drift in the ageless winds.