Avatar billede a1a1 Novice
18. december 2007 - 22:06 Der er 8 kommentarer og
1 løsning

pros & cons: gem billeder i db eller på server (som fil)

jeg skal gemme X antal billeder (logoer), størrelsen er max. ca 30x30 pixel...

Der er pt. ca. 2 millioner firmaer i databasen og for at "få billeder med" koster det lidt (så det er ikke mange der kommer til at være).

Hvad mener i er det bedste...
(jeg kan jo ikke gemme 2mill. billeder i EN mappe/bibliotek), så dør servern ;o)

skal jeg lave en "mappe struktur" der f.eks. går fra 1-10000, 10001-20000, osv...

Jeg tror på sqlversionen da det max. er 10% (bliver nok max. 1%) der skal ligge i db????

(ved godt at det at lagre billeder i en db generelt er en "dum" idé)

;o)
Avatar billede arne_v Ekspert
18. december 2007 - 22:16 #1
Gem dem i databasen.

Mulighed for transactional integrity.

Nemmere backup/restore procedure.

Nemmere at reorganisere fysisk database placering.

Performance boer ikke vaere et problem i det setup.
Avatar billede arne_v Ekspert
18. december 2007 - 22:19 #2
Jeg lavede engang en lille test med ASP.NET + MySQL + 1000 billeder af 25 KB (ikke helt
dit setup, men jeg tror at resultaterne kan overfoeres):

File (1 threads): 1,9 get per second
File (10 threads): 2,2 get per second
File with web app cache (1 threads): 6,6 get per second
File with web app cache (10 threads): 16,1 get per second
File directly by web server (1 threads): 17,6 get per second
File directly by web server (10 threads): 20,1 get per second
Database (1 threads): 10,7 get per second
Database (10 threads): 11,8 get per second
Database with web app cache (1 threads): 15,4 get per second
Database with web app cache (10 threads): 19,6 get per second
File (1 threads): 1,9 get per second
File (10 threads): 2,2 get per second
File with web app cache (1 threads): 16,7 get per second
File with web app cache (10 threads): 19,4 get per second
File directly by web server (1 threads): 17,1 get per second
File directly by web server (10 threads): 20 get per second
Database (1 threads): 10,7 get per second
Database (10 threads): 11,9 get per second
Database with web app cache (1 threads): 17,3 get per second
Database with web app cache (10 threads): 19,6 get per second
File (1 threads): 1,9 get per second
File (10 threads): 2,1 get per second
File with web app cache (1 threads): 16,8 get per second
File with web app cache (10 threads): 17,8 get per second
File directly by web server (1 threads): 17,6 get per second
File directly by web server (10 threads): 20,1 get per second
Database (1 threads): 10,7 get per second
Database (10 threads): 11,6 get per second
Database with web app cache (1 threads): 17,1 get per second
Database with web app cache (10 threads): 19,5 get per second
Avatar billede arne_v Ekspert
18. december 2007 - 22:22 #3
At billeder i database generelt er en dum ide er efter min mening et levn fra gamle
dage.

Ja - det var nemt at faa en Access 95 eller 97 MDB til at gaa i knae ved at begynde
at gemme billeder i den.

Men Win95+32 MB RAM+500 MB disk+Access 95 og Win2003+4 GB RAM+1 TB disk+SQLServer 2005 har ikke meget til faelles.
Avatar billede a1a1 Novice
18. december 2007 - 22:35 #4
ja, det "ER" at være en dum idé at gemme i DB, hvis der er mange...

ps. det kører på w2k3, og sql 2k5...

PS: 1% ER en "drøm", fra dem jeg laver det for.. Jeg har tidligere lavet det samme filbaseret (hver 10000 fik sin egen mappe (1-10000,10001-20000 osv), men så skal/er der jo meget fil access for at checke om billedet er der (kunne jo også registreres i db'en men så er der 4 ekstra felter)
Avatar billede arne_v Ekspert
19. december 2007 - 01:23 #5
Prøv og lav udregningen.

25 x 25 pixel x 24 bit color + lidt header = 2 KB

2 millioner x 2 KB er 4 GB

Selv med dyre SCSI 15K diske er det under 100 kr..

Lad os sige at 10% af dem bruges og skal ligge i memory - det er 200 MB - selv med ECC er det vel under 200 kr..
Avatar billede a1a1 Novice
19. december 2007 - 03:27 #6
"kong" arne, dvs. det er database "modellen" jeg bør/burde bruge?
(jeg tror/ved, at DU ved hvad du snakker om)

smid et svar ;o)
Avatar billede arne_v Ekspert
19. december 2007 - 04:57 #7
Billeder i database vil være nemmest at administrere og jeg tror at performance
vil være udmærket.

Så jeg mener at du skal arbejde videre på database løsningen.

Og naturligvis lave en load test inden det går i production for at se om virkeligheden
nu ved hvordan den skal opføre sig.
Avatar billede arne_v Ekspert
19. december 2007 - 04:57 #8
og et svar
Avatar billede a1a1 Novice
19. december 2007 - 14:41 #9
og et tak ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester