78
« kdy: 09. 07. 2011, 16:09:53 »
Varianta A, ukladani do filesystemu:
pokud bude mit web 10 000 uzivatelu, bude ve filesystemu v jednom adresari 10 000 souboru. To nektere filesystemy dost brzdi. Jak uz bylo receno, cas od casu muze dojit k vytvoreni nejakeho odpadu (soubory ktere uz nemaji odkaz v DB, nebo obracene radky DB ktere nemaji soubory). K tomu muze dojit proto, ze ulozeni do databaze a ulozeni do filesystemu jsou 2 operace ktere neprobehnou atomicky - pri vypadku se proste udela jen jedno (treba ulozeni radku do databaze) ale ne to druhe (ulozeni souboru na disk). Jsou tedy nutne dalsi tools na detekovani a opraveni techto vadnych stavu. Dalsi nevyhodou je, dospeje-li aplikace do stavu, kdy je nutne ji nechat bezet z vice serveru - pak je nutne synchronizovat fotky z disku nejak mezi jednotlive nody, pokud tedy nejsou ukladane na nejaky sitovy disk.
Varianta B, ukladani do DB:
Obecne nehrozi nekonzistence dat jako v predchozim pripade, pri prechodu na vic serveru je mozne databazi jednoduse replikovat, nebo servirovat z centralni vykonne masiny. Pro velke zatizeni je samozrejme nedobre, kdyz mi nacitani profilovych fotek zpusobi dalsi zatizeni databaze, ale jak uz bylo receno, je mozne profilove fotky cachovat, aby se databazi ulevilo. Jedine co je asi nevyhoda je celkova velikost databaze, neb bude obsahovat i ty fotky, ale tohle je dost relativni, pro nekoho je uz 1GB moc, pro nekoho je 1TB malo...
Doporucuji tedy profilove fotky ukladat do databaze, ale ja sam z pohodlnosti (a ze zvyku) ukladam do filesystemu, nicmene do vetsiho stromu, typu
images/b/a/b/babicka.jpg
images/k/a/r/karkulka.jpg
atd