Képek tárolása az adatbázisban, vagy fájlrendszerben?
Sziasztok.
röviden: képeket adatbázisban, vagy fájlrendszerben?
Tudom ezerszer lerágott csont már, sőt jó-párszor előkerült már itt a weblaboron is, de ahogy nézem legutóbb viszonylag rég.
rövid topic
viszonylag hosszú levelezési listaszál
Kérdés ez volna 5 év után kinek mi a véleménye? És itt elsősorban a gyorsaságról beszélek. Cache-el szempontjából szerintetek melyik a jobb? Egy fájlrendszerben tárolt képet az operációs rendszer mennyire fog cache-elni? -ha egyáltalán cache-el..
proclub (azóta már) a szerverek világában mozogsz... Változott a véleményed? ("cégednél" melyiket ajánlanád?)
Szóval képeket adatbázisban, vagy fájlrendszerben?
■ röviden: képeket adatbázisban, vagy fájlrendszerben?
Tudom ezerszer lerágott csont már, sőt jó-párszor előkerült már itt a weblaboron is, de ahogy nézem legutóbb viszonylag rég.
rövid topic
viszonylag hosszú levelezési listaszál
Kérdés ez volna 5 év után kinek mi a véleménye? És itt elsősorban a gyorsaságról beszélek. Cache-el szempontjából szerintetek melyik a jobb? Egy fájlrendszerben tárolt képet az operációs rendszer mennyire fog cache-elni? -ha egyáltalán cache-el..
proclub (azóta már) a szerverek világában mozogsz... Változott a véleményed? ("cégednél" melyiket ajánlanád?)
Szóval képeket adatbázisban, vagy fájlrendszerben?
Filerendszerben
Gyakorlati példa: építettünk olyan statikus fájl kiszolgálót, ami 50.000 db 50 kb-os kép random lekérésekre 1,6-1,8 gbitet tolt ki magából és ott még nem volt vége a gépnek, csak már értelmetlen lett volna az adott feladatra betolni még egy hálókártyát. Ha PHP-ból szolgálsz ki képeket, már rég elfogytál CPU-ban és még a közelébe sem értél a néhány száz megabitnek.
Még egy bónusz pont: az adatbázisok meglehetősen furán működnek, ha egy megadott méretnél nagyobb fájlokat akarsz beléjük tölteni insertnél. MySQLnél pl a maximális csomag méret az, amit a legerősebb limitáló tényező, de vannak egyéb tekerentyűk is, amikkel játszani kell ilyenkor.
re
Viszont minap beszéltem valakivel aki az adatbázist javasolta. Épp a cache-hetőség miatt. Annyit azért rögtön hozzátennék hogy asp-és volt az illető, és arról beszélt hogy elég lassú művelet egy fájlt betölteni merevlemezről. Ami ugyan tény, viszont nemtudom hogy az ntfs vs ext viszonyában mennyire árnyalódik ez kérdés.
Nagyon nagyon nagy rendszerek mögé is ezt ajánlanád? facebook? :)
CDN
Az ASP-s embernek meg lehet igaza, nem ismerem a Windowst, de azért kíváncsi lennék, mennyi képet tud így kitolni magából, hogy user spaceben pakolgatja a byteokat.
köszönöm
Köszönöm a választ, sokat segítettél!
Az adatbázis is fileban tárol nem?
Egy adatbázis véletlenül nem fileokban és nem a merevlemezen tárolja az adatokat? :)))
Innentől kezdve egyértelműen gyorsabb a file. Ott csak egy olvasást végzel közvetlenül a lemezről, míg adatbázis esetén kommunikálsz az adatbázissal, nyilván annak is van némi időigénye, plusz még olvasol is a lemezről. Szerintem logikusan végiggondolva egyértelmű, hogy gyorsabb a sima filerendszer.
Én személy szerint ott szoktam alkalmazni adatbázisban tárolt file megoldást, ahol iszonyúan fontos, hogy az adott fileokhoz csak adott személyek férhessenek hozzá minden körülmények között, és nem kiemelkedően fontos a kiszolgálás sebessége, illetve nem nagymennyiségű és nem nagy méretű fileokról van szó. De lehet hogy még erre sem kellene, de számomra így kényelmes. :)
De lehet butaságokat beszélek, világosítsatok fel ha valamit félregondolok :)
memória
De igazából a kérdés nem is erről szól hanem hogy alap felállásban melyiket cache-eli a rendszer jobban. Például nemtudom hogy egy Apache / MySQL / Linux környezetben az adatbázis tartalma mennyire lesz memóriába be cache-lve. Illetve egy filerendszerben egy kép mennyire lesz cache-lve (erre meg is kaptam a választ: nagyon)
Cache
A fájlrendszer is cache-el,
Nem látom túl sok értelmét MySQL-t használni bináris fájlok kiszolgálására, hacsak nem esetleg a viszonylag egyszerű skálázódás miatt, ha sokat olvasol.
Van is egy érdekes próbálkozás, ami a MySQL-t mint fájlrendszert használja: http://sourceforge.net/projects/mysqlfs/files/
Filerendszer
Egyébként a filerendszer is skálázódik elég jól, csak kell egy minimális programlogika. Lásd a nagy terhelésű rendszerek fejlesztéséről tartott előadásomat a Docler Akadémián.