Take the 2-minute tour ×

Exact Duplicate: User Images: Database or filesystem storage?
Exact Duplicate:
Storing images in database: Yea or nay?

I have to store user's profile image (100px * 100px) what is the best way to store it ? database or system file ? which one is better , faster ,safer ... ?

share|improve this question
@Yassir, seriously man. Search. I found 6 duplicates in seconds. I know there are more. –  Simucal Apr 19 '09 at 20:44
oh sry they didn't appear when i was typing the question my bad it won't happen again –  Hannoun Yassir Apr 19 '09 at 20:48
"Closed as spam"?!? I can understand closed as duplicate, but why spam? –  Bill Karwin Apr 19 '09 at 20:52
Yeah, doesn't seem like spam to me, either. –  Rick Copeland Apr 19 '09 at 21:07
Well, Yassir himself voted to close. So maybe he mis-clicked. –  Mithrax Apr 19 '09 at 21:16
show 2 more comments

closed as off topic by Mark Harrison, le dorfier, Simucal, Andy White, Hannoun Yassir Apr 19 '09 at 20:49


4 Answers

up vote 5 down vote accepted

Always store images, music files etc in system files on disk, and then store the url:s to them in the database. That will make it

1) faster

2) easier to configure security settings

3) better in any ways I can imagine

share|improve this answer
but wouldn't i have a problem when i back-up data ? –  Hannoun Yassir Apr 19 '09 at 20:45
No - just as there are backup solutions for databases, there are backup solutions for system files. Of course, depending on the scale of your appication, a third-party service like James Avery proposes could be what you're looking for. But unless you're going huge-scale with images, I would definitely recommend system files. –  Tomas Lycken Apr 19 '09 at 21:02
I agree with you –  Mahmoud Farahat Oct 15 '12 at 10:21
add comment

SQL Server 2008 offers the best of both worlds.

share|improve this answer
That was an informative link. Thanks anton. :) –  Gan Aug 24 '10 at 7:10
This was the answer for me. I was looking for an already-implemented file repository that stores on the filesystem but is managed through the DB. –  Ben Collins Jul 8 '11 at 16:21
add comment

I am going to propose a third option, a third-party party place like Amazon S3 or Mosso Cloud Files. Both provide APIs that you can use to upload the file and both provide CDN capabilities so the files will load quicker then they would off your servers or pulling from your database.

This is a nice option because it is the best of both worlds. The downside of storing images in the database is that it is additional stress on your application and database servers (locating the file and pulling it) and it also causes your database to grow in size which can mean you will need more hardware earlier.

The downside of storing them in the file system is that you now have an issue with scaling as if you want to add additional web servers they would each need a copy of the image or you would need create a dedicated server for these images. Also, file system access could be a future bottleneck to worry about.

share|improve this answer
add comment

database makes it easier to backup and restore and it works better than file system storage for small images. Microsoft had published a research paper on this topic: To BLOB or Not To BLOB.

share|improve this answer
add comment
